From bfc21ad9065210bd4fec1c4b152c132c3b98c110 Mon Sep 17 00:00:00 2001 From: deadprogram Date: Tue, 24 Mar 2026 10:37:36 +0100 Subject: [PATCH] targets/esp32c3: fix to use PROVIDE() for WiFi/BLE ROM function addresses to allow blob overrides Signed-off-by: deadprogram --- targets/esp32c3.ld | 584 ++++++++++++++++++++++----------------------- 1 file changed, 292 insertions(+), 292 deletions(-) diff --git a/targets/esp32c3.ld b/targets/esp32c3.ld index 18bde2604..4bdc72c83 100644 --- a/targets/esp32c3.ld +++ b/targets/esp32c3.ld @@ -1811,154 +1811,154 @@ r_sch_plan_offset_req_hook = 0x40001ce4; ***************************************/ /* Functions */ -esp_pp_rom_version_get = 0x400015b0; -RC_GetBlockAckTime = 0x400015b4; -ebuf_list_remove = 0x400015b8; +PROVIDE(esp_pp_rom_version_get = 0x400015b0); +PROVIDE(RC_GetBlockAckTime = 0x400015b4); +PROVIDE(ebuf_list_remove = 0x400015b8); /*esf_buf_alloc = 0x400015bc;*/ -GetAccess = 0x400015c8; -hal_mac_is_low_rate_enabled = 0x400015cc; -hal_mac_tx_get_blockack = 0x400015d0; +PROVIDE(GetAccess = 0x400015c8); +PROVIDE(hal_mac_is_low_rate_enabled = 0x400015cc); +PROVIDE(hal_mac_tx_get_blockack = 0x400015d0); /* hal_mac_tx_set_ppdu = 0x400015d4;*/ -ic_get_trc = 0x400015d8; +PROVIDE(ic_get_trc = 0x400015d8); /* ic_mac_deinit = 0x400015dc; */ -ic_mac_init = 0x400015e0; -ic_interface_enabled = 0x400015e4; -is_lmac_idle = 0x400015e8; +PROVIDE(ic_mac_init = 0x400015e0); +PROVIDE(ic_interface_enabled = 0x400015e4); +PROVIDE(is_lmac_idle = 0x400015e8); /*lmacAdjustTimestamp = 0x400015ec;*/ -lmacDiscardAgedMSDU = 0x400015f0; +PROVIDE(lmacDiscardAgedMSDU = 0x400015f0); /*lmacDiscardMSDU = 0x400015f4;*/ -lmacEndFrameExchangeSequence = 0x400015f8; -lmacIsIdle = 0x400015fc; -lmacIsLongFrame = 0x40001600; +PROVIDE(lmacEndFrameExchangeSequence = 0x400015f8); +PROVIDE(lmacIsIdle = 0x400015fc); +PROVIDE(lmacIsLongFrame = 0x40001600); /*lmacMSDUAged = 0x40001604;*/ -lmacPostTxComplete = 0x40001608; -lmacProcessAllTxTimeout = 0x4000160c; -lmacProcessCollisions = 0x40001610; -lmacProcessRxSucData = 0x40001614; -lmacReachLongLimit = 0x40001618; -lmacReachShortLimit = 0x4000161c; -lmacRecycleMPDU = 0x40001620; -lmacRxDone = 0x40001624; +PROVIDE(lmacPostTxComplete = 0x40001608); +PROVIDE(lmacProcessAllTxTimeout = 0x4000160c); +PROVIDE(lmacProcessCollisions = 0x40001610); +PROVIDE(lmacProcessRxSucData = 0x40001614); +PROVIDE(lmacReachLongLimit = 0x40001618); +PROVIDE(lmacReachShortLimit = 0x4000161c); +PROVIDE(lmacRecycleMPDU = 0x40001620); +PROVIDE(lmacRxDone = 0x40001624); /*lmacSetTxFrame = 0x40001628;*/ /*lmacTxFrame = 0x40001630;*/ -mac_tx_set_duration = 0x40001634; +PROVIDE(mac_tx_set_duration = 0x40001634); /* mac_tx_set_htsig = 0x40001638;*/ -mac_tx_set_plcp0 = 0x4000163c; +PROVIDE(mac_tx_set_plcp0 = 0x4000163c); /* mac_tx_set_plcp1 = 0x40001640;*/ -mac_tx_set_plcp2 = 0x40001644; +PROVIDE(mac_tx_set_plcp2 = 0x40001644); /* pm_check_state = 0x40001648; */ -pm_disable_dream_timer = 0x4000164c; -pm_disable_sleep_delay_timer = 0x40001650; -pm_dream = 0x40001654; -pm_mac_wakeup = 0x40001658; -pm_mac_sleep = 0x4000165c; -pm_enable_active_timer = 0x40001660; -pm_enable_sleep_delay_timer = 0x40001664; -pm_local_tsf_process = 0x40001668; -pm_set_beacon_filter = 0x4000166c; -pm_is_in_wifi_slice_threshold = 0x40001670; -pm_is_waked = 0x40001674; -pm_keep_alive = 0x40001678; +PROVIDE(pm_disable_dream_timer = 0x4000164c); +PROVIDE(pm_disable_sleep_delay_timer = 0x40001650); +PROVIDE(pm_dream = 0x40001654); +PROVIDE(pm_mac_wakeup = 0x40001658); +PROVIDE(pm_mac_sleep = 0x4000165c); +PROVIDE(pm_enable_active_timer = 0x40001660); +PROVIDE(pm_enable_sleep_delay_timer = 0x40001664); +PROVIDE(pm_local_tsf_process = 0x40001668); +PROVIDE(pm_set_beacon_filter = 0x4000166c); +PROVIDE(pm_is_in_wifi_slice_threshold = 0x40001670); +PROVIDE(pm_is_waked = 0x40001674); +PROVIDE(pm_keep_alive = 0x40001678); /* pm_on_beacon_rx = 0x4000167c; */ -pm_on_data_rx = 0x40001680; -pm_on_tbtt = 0x40001684; +PROVIDE(pm_on_data_rx = 0x40001680); +PROVIDE(pm_on_tbtt = 0x40001684); /* pm_parse_beacon = 0x40001688;*/ /* pm_process_tim = 0x4000168c; */ /*pm_rx_beacon_process = 0x40001690;*/ /* pm_rx_data_process = 0x40001694; */ /*pm_sleep = 0x40001698;*/ -pm_sleep_for = 0x4000169c; +PROVIDE(pm_sleep_for = 0x4000169c); /* pm_tbtt_process = 0x400016a0; */ -ppAMPDU2Normal = 0x400016a4; +PROVIDE(ppAMPDU2Normal = 0x400016a4); /*ppAssembleAMPDU = 0x400016a8;*/ -ppCalFrameTimes = 0x400016ac; -ppCalSubFrameLength = 0x400016b0; +PROVIDE(ppCalFrameTimes = 0x400016ac); +PROVIDE(ppCalSubFrameLength = 0x400016b0); /*ppCalTxAMPDULength = 0x400016b4;*/ -ppCheckTxAMPDUlength = 0x400016b8; -ppDequeueRxq_Locked = 0x400016bc; -ppDequeueTxQ = 0x400016c0; -ppEmptyDelimiterLength = 0x400016c4; -ppEnqueueRxq = 0x400016c8; -ppEnqueueTxDone = 0x400016cc; -ppGetTxQFirstAvail_Locked = 0x400016d0; -ppGetTxframe = 0x400016d4; -ppProcessRxPktHdr = 0x400016e0; -ppProcessTxQ = 0x400016e4; -ppRecordBarRRC = 0x400016e8; -lmacRequestTxopQueue = 0x400016ec; -lmacReleaseTxopQueue = 0x400016f0; -ppRecycleAmpdu = 0x400016f4; -ppRecycleRxPkt = 0x400016f8; -ppResortTxAMPDU = 0x400016fc; -ppResumeTxAMPDU = 0x40001700; +PROVIDE(ppCheckTxAMPDUlength = 0x400016b8); +PROVIDE(ppDequeueRxq_Locked = 0x400016bc); +PROVIDE(ppDequeueTxQ = 0x400016c0); +PROVIDE(ppEmptyDelimiterLength = 0x400016c4); +PROVIDE(ppEnqueueRxq = 0x400016c8); +PROVIDE(ppEnqueueTxDone = 0x400016cc); +PROVIDE(ppGetTxQFirstAvail_Locked = 0x400016d0); +PROVIDE(ppGetTxframe = 0x400016d4); +PROVIDE(ppProcessRxPktHdr = 0x400016e0); +PROVIDE(ppProcessTxQ = 0x400016e4); +PROVIDE(ppRecordBarRRC = 0x400016e8); +PROVIDE(lmacRequestTxopQueue = 0x400016ec); +PROVIDE(lmacReleaseTxopQueue = 0x400016f0); +PROVIDE(ppRecycleAmpdu = 0x400016f4); +PROVIDE(ppRecycleRxPkt = 0x400016f8); +PROVIDE(ppResortTxAMPDU = 0x400016fc); +PROVIDE(ppResumeTxAMPDU = 0x40001700); /* ppRxFragmentProc = 0x40001704; */ /* ppRxPkt = 0x40001708; */ -ppRxProtoProc = 0x4000170c; -ppSearchTxQueue = 0x40001710; -ppSearchTxframe = 0x40001714; -ppSelectNextQueue = 0x40001718; -ppSubFromAMPDU = 0x4000171c; -ppTask = 0x40001720; -ppTxPkt = 0x40001724; -ppTxProtoProc = 0x40001728; -ppTxqUpdateBitmap = 0x4000172c; -pp_coex_tx_request = 0x40001730; -pp_hdrsize = 0x40001734; -pp_post = 0x40001738; -pp_process_hmac_waiting_txq = 0x4000173c; -rcGetAmpduSched = 0x40001740; -rcUpdateRxDone = 0x40001744; -rc_get_trc = 0x40001748; -rc_get_trc_by_index = 0x4000174c; -rcAmpduLowerRate = 0x40001750; -rcampduuprate = 0x40001754; -rcClearCurAMPDUSched = 0x40001758; -rcClearCurSched = 0x4000175c; -rcClearCurStat = 0x40001760; -rcLowerSched = 0x40001768; -rcSetTxAmpduLimit = 0x4000176c; +PROVIDE(ppRxProtoProc = 0x4000170c); +PROVIDE(ppSearchTxQueue = 0x40001710); +PROVIDE(ppSearchTxframe = 0x40001714); +PROVIDE(ppSelectNextQueue = 0x40001718); +PROVIDE(ppSubFromAMPDU = 0x4000171c); +PROVIDE(ppTask = 0x40001720); +PROVIDE(ppTxPkt = 0x40001724); +PROVIDE(ppTxProtoProc = 0x40001728); +PROVIDE(ppTxqUpdateBitmap = 0x4000172c); +PROVIDE(pp_coex_tx_request = 0x40001730); +PROVIDE(pp_hdrsize = 0x40001734); +PROVIDE(pp_post = 0x40001738); +PROVIDE(pp_process_hmac_waiting_txq = 0x4000173c); +PROVIDE(rcGetAmpduSched = 0x40001740); +PROVIDE(rcUpdateRxDone = 0x40001744); +PROVIDE(rc_get_trc = 0x40001748); +PROVIDE(rc_get_trc_by_index = 0x4000174c); +PROVIDE(rcAmpduLowerRate = 0x40001750); +PROVIDE(rcampduuprate = 0x40001754); +PROVIDE(rcClearCurAMPDUSched = 0x40001758); +PROVIDE(rcClearCurSched = 0x4000175c); +PROVIDE(rcClearCurStat = 0x40001760); +PROVIDE(rcLowerSched = 0x40001768); +PROVIDE(rcSetTxAmpduLimit = 0x4000176c); /* rcTxUpdatePer = 0x40001770;*/ -rcUpdateAckSnr = 0x40001774; +PROVIDE(rcUpdateAckSnr = 0x40001774); /*rcUpdateRate = 0x40001778;*/ /* rcUpdateTxDone = 0x4000177c; */ -rcUpdateTxDoneAmpdu2 = 0x40001780; -rcUpSched = 0x40001784; -rssi_margin = 0x40001788; -rx11NRate2AMPDULimit = 0x4000178c; -TRC_AMPDU_PER_DOWN_THRESHOLD = 0x40001790; -TRC_AMPDU_PER_UP_THRESHOLD = 0x40001794; -trc_calc_duration = 0x40001798; -trc_isTxAmpduOperational = 0x4000179c; -trc_onAmpduOp = 0x400017a0; -TRC_PER_IS_GOOD = 0x400017a4; -trc_SetTxAmpduState = 0x400017a8; -trc_tid_isTxAmpduOperational = 0x400017ac; -trcAmpduSetState = 0x400017b0; -wDev_AppendRxBlocks = 0x400017b8; -wDev_DiscardFrame = 0x400017bc; -wDev_GetNoiseFloor = 0x400017c0; -wDev_IndicateAmpdu = 0x400017c4; +PROVIDE(rcUpdateTxDoneAmpdu2 = 0x40001780); +PROVIDE(rcUpSched = 0x40001784); +PROVIDE(rssi_margin = 0x40001788); +PROVIDE(rx11NRate2AMPDULimit = 0x4000178c); +PROVIDE(TRC_AMPDU_PER_DOWN_THRESHOLD = 0x40001790); +PROVIDE(TRC_AMPDU_PER_UP_THRESHOLD = 0x40001794); +PROVIDE(trc_calc_duration = 0x40001798); +PROVIDE(trc_isTxAmpduOperational = 0x4000179c); +PROVIDE(trc_onAmpduOp = 0x400017a0); +PROVIDE(TRC_PER_IS_GOOD = 0x400017a4); +PROVIDE(trc_SetTxAmpduState = 0x400017a8); +PROVIDE(trc_tid_isTxAmpduOperational = 0x400017ac); +PROVIDE(trcAmpduSetState = 0x400017b0); +PROVIDE(wDev_AppendRxBlocks = 0x400017b8); +PROVIDE(wDev_DiscardFrame = 0x400017bc); +PROVIDE(wDev_GetNoiseFloor = 0x400017c0); +PROVIDE(wDev_IndicateAmpdu = 0x400017c4); /*wDev_IndicateFrame = 0x400017c8;*/ -wdev_bank_store = 0x400017cc; -wdev_bank_load = 0x400017d0; -wdev_mac_reg_load = 0x400017d4; -wdev_mac_reg_store = 0x400017d8; -wdev_mac_special_reg_load = 0x400017dc; -wdev_mac_special_reg_store = 0x400017e0; -wdev_mac_wakeup = 0x400017e4; -wdev_mac_sleep = 0x400017e8; -hal_mac_is_dma_enable = 0x400017ec; +PROVIDE(wdev_bank_store = 0x400017cc); +PROVIDE(wdev_bank_load = 0x400017d0); +PROVIDE(wdev_mac_reg_load = 0x400017d4); +PROVIDE(wdev_mac_reg_store = 0x400017d8); +PROVIDE(wdev_mac_special_reg_load = 0x400017dc); +PROVIDE(wdev_mac_special_reg_store = 0x400017e0); +PROVIDE(wdev_mac_wakeup = 0x400017e4); +PROVIDE(wdev_mac_sleep = 0x400017e8); +PROVIDE(hal_mac_is_dma_enable = 0x400017ec); /*wDev_ProcessFiq = 0x400017f0;*/ /*wDev_ProcessRxSucData = 0x400017f4;*/ -wdevProcessRxSucDataAll = 0x400017f8; -wdev_csi_len_align = 0x400017fc; -ppDequeueTxDone_Locked = 0x40001800; +PROVIDE(wdevProcessRxSucDataAll = 0x400017f8); +PROVIDE(wdev_csi_len_align = 0x400017fc); +PROVIDE(ppDequeueTxDone_Locked = 0x40001800); /*pm_tx_data_done_process = 0x40001808;*/ -config_is_cache_tx_buf_enabled = 0x4000180c; +PROVIDE(config_is_cache_tx_buf_enabled = 0x4000180c); //ppMapWaitTxq = 0x40001810; -ppProcessWaitingQueue = 0x40001814; -ppDisableQueue = 0x40001818; -pm_allow_tx = 0x4000181c; +PROVIDE(ppProcessWaitingQueue = 0x40001814); +PROVIDE(ppDisableQueue = 0x40001818); +PROVIDE(pm_allow_tx = 0x4000181c); /* Data (.data, .bss, .rodata) */ our_instances_ptr = 0x3ff1ee44; pTxRx = 0x3fcdf968; @@ -2015,41 +2015,41 @@ s_encap_amsdu_func = 0x3fcdf870; ***************************************/ /* Functions */ -esp_net80211_rom_version_get = 0x40001820; -ampdu_dispatch = 0x40001824; -ampdu_dispatch_all = 0x40001828; -ampdu_dispatch_as_many_as_possible = 0x4000182c; -ampdu_dispatch_movement = 0x40001830; -ampdu_dispatch_upto = 0x40001834; -chm_is_at_home_channel = 0x40001838; -cnx_node_is_existing = 0x4000183c; -cnx_node_search = 0x40001840; -ic_ebuf_recycle_rx = 0x40001844; -ic_ebuf_recycle_tx = 0x40001848; -ic_reset_rx_ba = 0x4000184c; -ieee80211_align_eb = 0x40001850; -ieee80211_ampdu_reorder = 0x40001854; -ieee80211_ampdu_start_age_timer = 0x40001858; +PROVIDE(esp_net80211_rom_version_get = 0x40001820); +PROVIDE(ampdu_dispatch = 0x40001824); +PROVIDE(ampdu_dispatch_all = 0x40001828); +PROVIDE(ampdu_dispatch_as_many_as_possible = 0x4000182c); +PROVIDE(ampdu_dispatch_movement = 0x40001830); +PROVIDE(ampdu_dispatch_upto = 0x40001834); +PROVIDE(chm_is_at_home_channel = 0x40001838); +PROVIDE(cnx_node_is_existing = 0x4000183c); +PROVIDE(cnx_node_search = 0x40001840); +PROVIDE(ic_ebuf_recycle_rx = 0x40001844); +PROVIDE(ic_ebuf_recycle_tx = 0x40001848); +PROVIDE(ic_reset_rx_ba = 0x4000184c); +PROVIDE(ieee80211_align_eb = 0x40001850); +PROVIDE(ieee80211_ampdu_reorder = 0x40001854); +PROVIDE(ieee80211_ampdu_start_age_timer = 0x40001858); /*ieee80211_encap_esfbuf = 0x4000185c;*/ -ieee80211_is_tx_allowed = 0x40001860; -ieee80211_output_pending_eb = 0x40001864; +PROVIDE(ieee80211_is_tx_allowed = 0x40001860); +PROVIDE(ieee80211_output_pending_eb = 0x40001864); /*ieee80211_output_process = 0x40001868;*/ -ieee80211_set_tx_desc = 0x4000186c; -rom_sta_input = 0x40001870; -wifi_get_macaddr = 0x40001874; -wifi_rf_phy_disable = 0x40001878; -wifi_rf_phy_enable = 0x4000187c; -ic_ebuf_alloc = 0x40001880; -ieee80211_classify = 0x40001884; -ieee80211_copy_eb_header = 0x40001888; -ieee80211_recycle_cache_eb = 0x4000188c; -ieee80211_search_node = 0x40001890; -roundup2 = 0x40001894; -ieee80211_crypto_encap = 0x40001898; +PROVIDE(ieee80211_set_tx_desc = 0x4000186c); +PROVIDE(rom_sta_input = 0x40001870); +PROVIDE(wifi_get_macaddr = 0x40001874); +PROVIDE(wifi_rf_phy_disable = 0x40001878); +PROVIDE(wifi_rf_phy_enable = 0x4000187c); +PROVIDE(ic_ebuf_alloc = 0x40001880); +PROVIDE(ieee80211_classify = 0x40001884); +PROVIDE(ieee80211_copy_eb_header = 0x40001888); +PROVIDE(ieee80211_recycle_cache_eb = 0x4000188c); +PROVIDE(ieee80211_search_node = 0x40001890); +PROVIDE(roundup2 = 0x40001894); +PROVIDE(ieee80211_crypto_encap = 0x40001898); /* ieee80211_crypto_decap = 0x4000189c; */ /* ieee80211_decap = 0x400018a0; */ -ieee80211_set_tx_pti = 0x400018a4; -wifi_is_started = 0x400018a8; +PROVIDE(ieee80211_set_tx_pti = 0x400018a4); +PROVIDE(wifi_is_started = 0x400018a8); /* Data (.data, .bss, .rodata) */ net80211_funcs = 0x3fcdf86c; g_scan = 0x3fcdf868; @@ -2067,26 +2067,26 @@ sta_rxcb = 0x3fcdf84c; ***************************************/ /* Functions */ -esp_coex_rom_version_get = 0x400018ac; -coex_bt_release = 0x400018b0; -coex_bt_request = 0x400018b4; -coex_core_ble_conn_dyn_prio_get = 0x400018b8; -coex_core_event_duration_get = 0x400018bc; -coex_core_pti_get = 0x400018c0; -coex_core_release = 0x400018c4; -coex_core_request = 0x400018c8; -coex_core_status_get = 0x400018cc; +PROVIDE(esp_coex_rom_version_get = 0x400018ac); +PROVIDE(coex_bt_release = 0x400018b0); +PROVIDE(coex_bt_request = 0x400018b4); +PROVIDE(coex_core_ble_conn_dyn_prio_get = 0x400018b8); +PROVIDE(coex_core_event_duration_get = 0x400018bc); +PROVIDE(coex_core_pti_get = 0x400018c0); +PROVIDE(coex_core_release = 0x400018c4); +PROVIDE(coex_core_request = 0x400018c8); +PROVIDE(coex_core_status_get = 0x400018cc); /*coex_core_timer_idx_get = 0x400018d0;*/ -coex_event_duration_get = 0x400018d4; -coex_hw_timer_disable = 0x400018d8; -coex_hw_timer_enable = 0x400018dc; -coex_hw_timer_set = 0x400018e0; -coex_schm_interval_set = 0x400018e4; -coex_schm_lock = 0x400018e8; -coex_schm_unlock = 0x400018ec; -coex_status_get = 0x400018f0; -coex_wifi_release = 0x400018f4; -esp_coex_ble_conn_dynamic_prio_get = 0x400018f8; +PROVIDE(coex_event_duration_get = 0x400018d4); +PROVIDE(coex_hw_timer_disable = 0x400018d8); +PROVIDE(coex_hw_timer_enable = 0x400018dc); +PROVIDE(coex_hw_timer_set = 0x400018e0); +PROVIDE(coex_schm_interval_set = 0x400018e4); +PROVIDE(coex_schm_lock = 0x400018e8); +PROVIDE(coex_schm_unlock = 0x400018ec); +PROVIDE(coex_status_get = 0x400018f0); +PROVIDE(coex_wifi_release = 0x400018f4); +PROVIDE(esp_coex_ble_conn_dynamic_prio_get = 0x400018f8); /* Data (.data, .bss, .rodata) */ coex_env_ptr = 0x3fcdf848; coex_pti_tab_ptr = 0x3fcdf844; @@ -2101,143 +2101,143 @@ g_coex_param_ptr = 0x3fcdf834; ***************************************/ /* Functions */ -phy_get_romfuncs = 0x400018fc; -rom_abs_temp = 0x40001900; -rom_bb_bss_cbw40_dig = 0x40001904; -rom_bb_wdg_test_en = 0x40001908; -rom_bb_wdt_get_status = 0x4000190c; -rom_bb_wdt_int_enable = 0x40001910; -rom_bb_wdt_rst_enable = 0x40001914; -rom_bb_wdt_timeout_clear = 0x40001918; -rom_cbw2040_cfg = 0x4000191c; -rom_check_noise_floor = 0x40001920; -rom_chip_i2c_readReg = 0x40001924; -rom_chip_i2c_writeReg = 0x40001928; -rom_correct_rf_ana_gain = 0x4000192c; -rom_dc_iq_est = 0x40001930; -rom_disable_agc = 0x40001934; -rom_en_pwdet = 0x40001938; -rom_enable_agc = 0x4000193c; -rom_get_bbgain_db = 0x40001940; -rom_get_data_sat = 0x40001944; -rom_get_i2c_read_mask = 0x40001948; -rom_get_pwctrl_correct = 0x4000194c; -rom_get_rf_gain_qdb = 0x40001950; -rom_i2c_readReg = 0x40001954; -rom_i2c_readReg_Mask = 0x40001958; -rom_i2c_writeReg = 0x4000195c; -rom_i2c_writeReg_Mask = 0x40001960; +PROVIDE(phy_get_romfuncs = 0x400018fc); +PROVIDE(rom_abs_temp = 0x40001900); +PROVIDE(rom_bb_bss_cbw40_dig = 0x40001904); +PROVIDE(rom_bb_wdg_test_en = 0x40001908); +PROVIDE(rom_bb_wdt_get_status = 0x4000190c); +PROVIDE(rom_bb_wdt_int_enable = 0x40001910); +PROVIDE(rom_bb_wdt_rst_enable = 0x40001914); +PROVIDE(rom_bb_wdt_timeout_clear = 0x40001918); +PROVIDE(rom_cbw2040_cfg = 0x4000191c); +PROVIDE(rom_check_noise_floor = 0x40001920); +PROVIDE(rom_chip_i2c_readReg = 0x40001924); +PROVIDE(rom_chip_i2c_writeReg = 0x40001928); +PROVIDE(rom_correct_rf_ana_gain = 0x4000192c); +PROVIDE(rom_dc_iq_est = 0x40001930); +PROVIDE(rom_disable_agc = 0x40001934); +PROVIDE(rom_en_pwdet = 0x40001938); +PROVIDE(rom_enable_agc = 0x4000193c); +PROVIDE(rom_get_bbgain_db = 0x40001940); +PROVIDE(rom_get_data_sat = 0x40001944); +PROVIDE(rom_get_i2c_read_mask = 0x40001948); +PROVIDE(rom_get_pwctrl_correct = 0x4000194c); +PROVIDE(rom_get_rf_gain_qdb = 0x40001950); +PROVIDE(rom_i2c_readReg = 0x40001954); +PROVIDE(rom_i2c_readReg_Mask = 0x40001958); +PROVIDE(rom_i2c_writeReg = 0x4000195c); +PROVIDE(rom_i2c_writeReg_Mask = 0x40001960); /* rom_index_to_txbbgain = 0x40001964; */ -rom_iq_est_disable = 0x40001968; -rom_iq_est_enable = 0x4000196c; -rom_linear_to_db = 0x40001970; -rom_loopback_mode_en = 0x40001974; -rom_mhz2ieee = 0x40001978; -rom_noise_floor_auto_set = 0x4000197c; -rom_pbus_debugmode = 0x40001980; -rom_pbus_force_mode = 0x40001984; -rom_pbus_force_test = 0x40001988; -rom_pbus_rd = 0x4000198c; -rom_pbus_rd_addr = 0x40001990; -rom_pbus_rd_shift = 0x40001994; -rom_pbus_set_dco = 0x40001998; -rom_pbus_set_rxgain = 0x4000199c; -rom_pbus_workmode = 0x400019a0; -rom_pbus_xpd_rx_off = 0x400019a4; -rom_pbus_xpd_rx_on = 0x400019a8; -rom_pbus_xpd_tx_off = 0x400019ac; +PROVIDE(rom_iq_est_disable = 0x40001968); +PROVIDE(rom_iq_est_enable = 0x4000196c); +PROVIDE(rom_linear_to_db = 0x40001970); +PROVIDE(rom_loopback_mode_en = 0x40001974); +PROVIDE(rom_mhz2ieee = 0x40001978); +PROVIDE(rom_noise_floor_auto_set = 0x4000197c); +PROVIDE(rom_pbus_debugmode = 0x40001980); +PROVIDE(rom_pbus_force_mode = 0x40001984); +PROVIDE(rom_pbus_force_test = 0x40001988); +PROVIDE(rom_pbus_rd = 0x4000198c); +PROVIDE(rom_pbus_rd_addr = 0x40001990); +PROVIDE(rom_pbus_rd_shift = 0x40001994); +PROVIDE(rom_pbus_set_dco = 0x40001998); +PROVIDE(rom_pbus_set_rxgain = 0x4000199c); +PROVIDE(rom_pbus_workmode = 0x400019a0); +PROVIDE(rom_pbus_xpd_rx_off = 0x400019a4); +PROVIDE(rom_pbus_xpd_rx_on = 0x400019a8); +PROVIDE(rom_pbus_xpd_tx_off = 0x400019ac); /* rom_pbus_xpd_tx_on = 0x400019b0; */ -rom_phy_byte_to_word = 0x400019b4; -rom_phy_disable_cca = 0x400019b8; -rom_phy_enable_cca = 0x400019bc; -rom_phy_get_noisefloor = 0x400019c0; -rom_phy_get_rx_freq = 0x400019c4; -rom_phy_set_bbfreq_init = 0x400019c8; -rom_pow_usr = 0x400019cc; -rom_pwdet_sar2_init = 0x400019d0; -rom_read_hw_noisefloor = 0x400019d4; -rom_read_sar_dout = 0x400019d8; -rom_set_cal_rxdc = 0x400019dc; -rom_set_chan_cal_interp = 0x400019e0; -rom_set_loopback_gain = 0x400019e4; -rom_set_noise_floor = 0x400019e8; -rom_set_rxclk_en = 0x400019ec; +PROVIDE(rom_phy_byte_to_word = 0x400019b4); +PROVIDE(rom_phy_disable_cca = 0x400019b8); +PROVIDE(rom_phy_enable_cca = 0x400019bc); +PROVIDE(rom_phy_get_noisefloor = 0x400019c0); +PROVIDE(rom_phy_get_rx_freq = 0x400019c4); +PROVIDE(rom_phy_set_bbfreq_init = 0x400019c8); +PROVIDE(rom_pow_usr = 0x400019cc); +PROVIDE(rom_pwdet_sar2_init = 0x400019d0); +PROVIDE(rom_read_hw_noisefloor = 0x400019d4); +PROVIDE(rom_read_sar_dout = 0x400019d8); +PROVIDE(rom_set_cal_rxdc = 0x400019dc); +PROVIDE(rom_set_chan_cal_interp = 0x400019e0); +PROVIDE(rom_set_loopback_gain = 0x400019e4); +PROVIDE(rom_set_noise_floor = 0x400019e8); +PROVIDE(rom_set_rxclk_en = 0x400019ec); /* rom_set_tx_dig_gain = 0x400019f0; */ /* rom_set_txcap_reg = 0x400019f4; */ -rom_set_txclk_en = 0x400019f8; -rom_spur_cal = 0x400019fc; -rom_spur_reg_write_one_tone = 0x40001a00; -rom_target_power_add_backoff = 0x40001a04; -rom_tx_pwctrl_bg_init = 0x40001a08; +PROVIDE(rom_set_txclk_en = 0x400019f8); +PROVIDE(rom_spur_cal = 0x400019fc); +PROVIDE(rom_spur_reg_write_one_tone = 0x40001a00); +PROVIDE(rom_target_power_add_backoff = 0x40001a04); +PROVIDE(rom_tx_pwctrl_bg_init = 0x40001a08); /* rom_txbbgain_to_index = 0x40001a0c; */ -rom_wifi_11g_rate_chg = 0x40001a10; -rom_write_gain_mem = 0x40001a14; -chip726_phyrom_version = 0x40001a18; -rom_disable_wifi_agc = 0x40001a1c; -rom_enable_wifi_agc = 0x40001a20; -rom_set_tx_gain_table = 0x40001a24; -rom_bt_index_to_bb = 0x40001a28; -rom_bt_bb_to_index = 0x40001a2c; -rom_wr_bt_tx_atten = 0x40001a30; -rom_wr_bt_tx_gain_mem = 0x40001a34; -rom_spur_coef_cfg = 0x40001a38; -rom_bb_bss_cbw40 = 0x40001a3c; -rom_set_cca = 0x40001a40; -rom_tx_paon_set = 0x40001a44; -rom_i2cmst_reg_init = 0x40001a48; -rom_iq_corr_enable = 0x40001a4c; -rom_fe_reg_init = 0x40001a50; +PROVIDE(rom_wifi_11g_rate_chg = 0x40001a10); +PROVIDE(rom_write_gain_mem = 0x40001a14); +PROVIDE(chip726_phyrom_version = 0x40001a18); +PROVIDE(rom_disable_wifi_agc = 0x40001a1c); +PROVIDE(rom_enable_wifi_agc = 0x40001a20); +PROVIDE(rom_set_tx_gain_table = 0x40001a24); +PROVIDE(rom_bt_index_to_bb = 0x40001a28); +PROVIDE(rom_bt_bb_to_index = 0x40001a2c); +PROVIDE(rom_wr_bt_tx_atten = 0x40001a30); +PROVIDE(rom_wr_bt_tx_gain_mem = 0x40001a34); +PROVIDE(rom_spur_coef_cfg = 0x40001a38); +PROVIDE(rom_bb_bss_cbw40 = 0x40001a3c); +PROVIDE(rom_set_cca = 0x40001a40); +PROVIDE(rom_tx_paon_set = 0x40001a44); +PROVIDE(rom_i2cmst_reg_init = 0x40001a48); +PROVIDE(rom_iq_corr_enable = 0x40001a4c); +PROVIDE(rom_fe_reg_init = 0x40001a50); /* rom_agc_reg_init = 0x40001a54; */ /* rom_bb_reg_init = 0x40001a58; */ -rom_mac_enable_bb = 0x40001a5c; -rom_bb_wdg_cfg = 0x40001a60; -rom_force_txon = 0x40001a64; -rom_fe_txrx_reset = 0x40001a68; -rom_set_rx_comp = 0x40001a6c; +PROVIDE(rom_mac_enable_bb = 0x40001a5c); +PROVIDE(rom_bb_wdg_cfg = 0x40001a60); +PROVIDE(rom_force_txon = 0x40001a64); +PROVIDE(rom_fe_txrx_reset = 0x40001a68); +PROVIDE(rom_set_rx_comp = 0x40001a6c); /* rom_set_pbus_reg = 0x40001a70; */ -rom_write_chan_freq = 0x40001a74; +PROVIDE(rom_write_chan_freq = 0x40001a74); /* rom_phy_xpd_rf = 0x40001a78; */ -rom_set_xpd_sar = 0x40001a7c; -rom_write_dac_gain2 = 0x40001a80; -rom_rtc_sar2_init = 0x40001a84; -rom_get_target_power_offset = 0x40001a88; +PROVIDE(rom_set_xpd_sar = 0x40001a7c); +PROVIDE(rom_write_dac_gain2 = 0x40001a80); +PROVIDE(rom_rtc_sar2_init = 0x40001a84); +PROVIDE(rom_get_target_power_offset = 0x40001a88); /* rom_write_txrate_power_offset = 0x40001a8c; */ -rom_get_rate_fcc_index = 0x40001a90; -rom_get_rate_target_power = 0x40001a94; -rom_write_wifi_dig_gain = 0x40001a98; -rom_bt_correct_rf_ana_gain = 0x40001a9c; -rom_pkdet_vol_start = 0x40001aa0; -rom_read_sar2_code = 0x40001aa4; -rom_get_sar2_vol = 0x40001aa8; -rom_get_pll_vol = 0x40001aac; -rom_get_phy_target_power = 0x40001ab0; +PROVIDE(rom_get_rate_fcc_index = 0x40001a90); +PROVIDE(rom_get_rate_target_power = 0x40001a94); +PROVIDE(rom_write_wifi_dig_gain = 0x40001a98); +PROVIDE(rom_bt_correct_rf_ana_gain = 0x40001a9c); +PROVIDE(rom_pkdet_vol_start = 0x40001aa0); +PROVIDE(rom_read_sar2_code = 0x40001aa4); +PROVIDE(rom_get_sar2_vol = 0x40001aa8); +PROVIDE(rom_get_pll_vol = 0x40001aac); +PROVIDE(rom_get_phy_target_power = 0x40001ab0); /* rom_temp_to_power = 0x40001ab4; */ -rom_phy_track_pll_cap = 0x40001ab8; -rom_phy_pwdet_always_en = 0x40001abc; -rom_phy_pwdet_onetime_en = 0x40001ac0; -rom_get_i2c_mst0_mask = 0x40001ac4; -rom_get_i2c_hostid = 0x40001ac8; -rom_enter_critical_phy = 0x40001acc; -rom_exit_critical_phy = 0x40001ad0; -rom_chip_i2c_readReg_org = 0x40001ad4; -rom_i2c_paral_set_mst0 = 0x40001ad8; -rom_i2c_paral_set_read = 0x40001adc; -rom_i2c_paral_read = 0x40001ae0; -rom_i2c_paral_write = 0x40001ae4; -rom_i2c_paral_write_num = 0x40001ae8; -rom_i2c_paral_write_mask = 0x40001aec; -rom_bb_bss_cbw40_ana = 0x40001af0; -rom_chan_to_freq = 0x40001af4; +PROVIDE(rom_phy_track_pll_cap = 0x40001ab8); +PROVIDE(rom_phy_pwdet_always_en = 0x40001abc); +PROVIDE(rom_phy_pwdet_onetime_en = 0x40001ac0); +PROVIDE(rom_get_i2c_mst0_mask = 0x40001ac4); +PROVIDE(rom_get_i2c_hostid = 0x40001ac8); +PROVIDE(rom_enter_critical_phy = 0x40001acc); +PROVIDE(rom_exit_critical_phy = 0x40001ad0); +PROVIDE(rom_chip_i2c_readReg_org = 0x40001ad4); +PROVIDE(rom_i2c_paral_set_mst0 = 0x40001ad8); +PROVIDE(rom_i2c_paral_set_read = 0x40001adc); +PROVIDE(rom_i2c_paral_read = 0x40001ae0); +PROVIDE(rom_i2c_paral_write = 0x40001ae4); +PROVIDE(rom_i2c_paral_write_num = 0x40001ae8); +PROVIDE(rom_i2c_paral_write_mask = 0x40001aec); +PROVIDE(rom_bb_bss_cbw40_ana = 0x40001af0); +PROVIDE(rom_chan_to_freq = 0x40001af4); /* rom_open_i2c_xpd = 0x40001af8; */ -rom_dac_rate_set = 0x40001afc; +PROVIDE(rom_dac_rate_set = 0x40001afc); /* rom_tsens_read_init = 0x40001b00; */ /* rom_tsens_code_read = 0x40001b04; */ -rom_tsens_index_to_dac = 0x40001b08; -rom_tsens_index_to_offset = 0x40001b0c; +PROVIDE(rom_tsens_index_to_dac = 0x40001b08); +PROVIDE(rom_tsens_index_to_offset = 0x40001b0c); /* rom_tsens_dac_cal = 0x40001b10; */ -rom_code_to_temp = 0x40001b14; -rom_write_pll_cap_mem = 0x40001b18; -rom_pll_correct_dcap = 0x40001b1c; -rom_phy_en_hw_set_freq = 0x40001b20; -rom_phy_dis_hw_set_freq = 0x40001b24; +PROVIDE(rom_code_to_temp = 0x40001b14); +PROVIDE(rom_write_pll_cap_mem = 0x40001b18); +PROVIDE(rom_pll_correct_dcap = 0x40001b1c); +PROVIDE(rom_phy_en_hw_set_freq = 0x40001b20); +PROVIDE(rom_phy_dis_hw_set_freq = 0x40001b24); /* rom_pll_vol_cal = 0x40001b28; */