# ROM wifi funcs todo: - disasm the wifi binary ```sh $ find . -type f -name "*.o" -exec bash -c ' for file in "$@"; do nm "$file" | grep ROM_ | sed "s|^|$file: |" done' bash {} + ``` ``` ./lib_wlan_mp/rtl8711b_cmd.o: U ROM_WIFI_BCN_VALID ./lib_wlan_mp/rtl8711b_firmware.o: U ROM_WIFI_8051Reset ./lib_wlan_mp/rtl8711b_firmware.o: U ROM_WIFI_FWDownloadEnable ./lib_wlan_mp/rtl8711b_hal_efuse.o: U ROM_WIFI_EfuseParseTxPowerInfo ./lib_wlan_mp/lxbus_ops.o: 00000001 T ROM_WIFI_InitLxDma_patch ./lib_wlan_mp/phydm_CfoTracking.o: U ROM_odm_CfoTrackingFlow ./lib_wlan_mp/phydm_CfoTracking.o: U ROM_ODM_CfoTrackingReset ./lib_wlan_mp/phydm_CfoTracking.o: U ROM_odm_GetDefaultCrytaltalCap ./lib_wlan_mp/lxbus_halinit.o: U ROM_WIFI_InitAdaptiveCtrl ./lib_wlan_mp/lxbus_halinit.o: U ROM_WIFI_INIT_BeaconParameters ./lib_wlan_mp/lxbus_halinit.o: U ROM_WIFI_InitBurstPktLen ./lib_wlan_mp/lxbus_halinit.o: U ROM_WIFI_InitDriverInfoSize ./lib_wlan_mp/lxbus_halinit.o: U ROM_WIFI_InitEDCA ./lib_wlan_mp/lxbus_halinit.o: U ROM_WIFI_InitLLTTable ./lib_wlan_mp/lxbus_halinit.o: U ROM_WIFI_InitLxDma_patch ./lib_wlan_mp/lxbus_halinit.o: U ROM_WIFI_InitNetworkType ./lib_wlan_mp/lxbus_halinit.o: U ROM_WIFI_InitNormalChipRegPriority ./lib_wlan_mp/lxbus_halinit.o: U ROM_WIFI_InitOperationMode ./lib_wlan_mp/lxbus_halinit.o: U ROM_WIFI_InitPageBoundary ./lib_wlan_mp/lxbus_halinit.o: U ROM_WIFI_InitRateFallback ./lib_wlan_mp/lxbus_halinit.o: U ROM_WIFI_InitRCR ./lib_wlan_mp/lxbus_halinit.o: U ROM_WIFI_InitRetryFunction ./lib_wlan_mp/lxbus_halinit.o: U ROM_WIFI_InitSIFS ./lib_wlan_mp/lxbus_halinit.o: U ROM_WIFI_InitTransferPageSize ./lib_wlan_mp/lxbus_halinit.o: U ROM_WIFI_InitTxBufferBoundary ./lib_wlan_mp/lxbus_suspend.o: U ROM_WIFI_32K_Cmd ./lib_wlan_mp/phydm_HWConfig.o: U ROM_odm_EVMdbToPercentage ./lib_wlan_mp/phydm_HWConfig.o: U ROM_odm_QueryRxPwrPercentage ./lib_wlan_mp/phydm_HWConfig.o: U ROM_odm_SignalScaleMapping_8711B ./lib_wlan_mp/rtw_mp.o: U ROM_odm_FalseAlarmCounterStatistics ./lib_wlan_mp/rtw_mp.o: U ROM_odm_SetCrystalCap ./lib_wlan_mp/rtl8711b_xmit.o: U ROM_WIFI_BCN_VALID ./lib_wlan_mp/rtl8711b_hal_init.o: U ROM_WIFI_ACM_CTRL ./lib_wlan_mp/rtl8711b_hal_init.o: U ROM_WIFI_BASIC_RATE ./lib_wlan_mp/rtl8711b_hal_init.o: U ROM_WIFI_BCN_FUNC ./lib_wlan_mp/rtl8711b_hal_init.o: U ROM_WIFI_BSSID_SET ./lib_wlan_mp/rtl8711b_hal_init.o: U ROM_WIFI_BWMapping ./lib_wlan_mp/rtl8711b_hal_init.o: U ROM_WIFI_CAM_WRITE ./lib_wlan_mp/rtl8711b_hal_init.o: U ROM_WIFI_CHECK_BSSID ./lib_wlan_mp/rtl8711b_hal_init.o: U ROM_WIFI_CHECK_TXBUF ./lib_wlan_mp/rtl8711b_hal_init.o: U ROM_WIFI_DISCONNECT ./lib_wlan_mp/rtl8711b_hal_init.o: U ROM_WIFI_FIFO_CLEARN_UP ./lib_wlan_mp/rtl8711b_hal_init.o: U ROM_WIFI_FillFakeTxdesc ./lib_wlan_mp/rtl8711b_hal_init.o: U ROM_WIFI_FillTxdescSectype ./lib_wlan_mp/rtl8711b_hal_init.o: U ROM_WIFI_INIT_BeaconParameters ./lib_wlan_mp/rtl8711b_hal_init.o: U ROM_WIFI_MACADDR_SET ./lib_wlan_mp/rtl8711b_hal_init.o: U ROM_WIFI_MEDIA_STATUS ./lib_wlan_mp/rtl8711b_hal_init.o: U ROM_WIFI_MEDIA_STATUS1 ./lib_wlan_mp/rtl8711b_hal_init.o: U ROM_WIFI_PROMISC_Cmd ./lib_wlan_mp/rtl8711b_hal_init.o: U ROM_WIFI_ReadChipVersion ./lib_wlan_mp/rtl8711b_hal_init.o: U ROM_WIFI_RESP_SIFS ./lib_wlan_mp/rtl8711b_hal_init.o: U ROM_WIFI_RESUME_TxBeacon ./lib_wlan_mp/rtl8711b_hal_init.o: U ROM_WIFI_SCMapping ./lib_wlan_mp/rtl8711b_hal_init.o: U ROM_WIFI_SetOpmodeAP ./lib_wlan_mp/rtl8711b_hal_init.o: U ROM_WIFI_SET_TSF ./lib_wlan_mp/rtl8711b_hal_init.o: U ROM_WIFI_STOP_TXBeacon ./lib_wlan_mp/HalPhyRf_8711B.o: U ROM_odm_SetCrystalCap ./lib_wlan_mp/rtl8711b_phycfg.o: U ROM_odm_SetCrystalCap ./lib_wlan/rtl8711b_cmd.o: U ROM_WIFI_BCN_VALID ./lib_wlan/rtl8711b_firmware.o: U ROM_WIFI_8051Reset ./lib_wlan/rtl8711b_firmware.o: U ROM_WIFI_FWDownloadEnable ./lib_wlan/rtl8711b_hal_efuse.o: U ROM_WIFI_EfuseParseTxPowerInfo ./lib_wlan/lxbus_ops.o: 00000001 T ROM_WIFI_InitLxDma_patch ./lib_wlan/phydm_CfoTracking.o: U ROM_odm_CfoTrackingFlow ./lib_wlan/phydm_CfoTracking.o: U ROM_ODM_CfoTrackingReset ./lib_wlan/phydm_CfoTracking.o: U ROM_odm_GetDefaultCrytaltalCap ./lib_wlan/lxbus_halinit.o: U ROM_WIFI_InitAdaptiveCtrl ./lib_wlan/lxbus_halinit.o: U ROM_WIFI_INIT_BeaconParameters ./lib_wlan/lxbus_halinit.o: U ROM_WIFI_InitBurstPktLen ./lib_wlan/lxbus_halinit.o: U ROM_WIFI_InitDriverInfoSize ./lib_wlan/lxbus_halinit.o: U ROM_WIFI_InitEDCA ./lib_wlan/lxbus_halinit.o: U ROM_WIFI_InitLLTTable ./lib_wlan/lxbus_halinit.o: U ROM_WIFI_InitLxDma_patch ./lib_wlan/lxbus_halinit.o: U ROM_WIFI_InitNetworkType ./lib_wlan/lxbus_halinit.o: U ROM_WIFI_InitNormalChipRegPriority ./lib_wlan/lxbus_halinit.o: U ROM_WIFI_InitOperationMode ./lib_wlan/lxbus_halinit.o: U ROM_WIFI_InitPageBoundary ./lib_wlan/lxbus_halinit.o: U ROM_WIFI_InitRateFallback ./lib_wlan/lxbus_halinit.o: U ROM_WIFI_InitRCR ./lib_wlan/lxbus_halinit.o: U ROM_WIFI_InitRetryFunction ./lib_wlan/lxbus_halinit.o: U ROM_WIFI_InitSIFS ./lib_wlan/lxbus_halinit.o: U ROM_WIFI_InitTransferPageSize ./lib_wlan/lxbus_halinit.o: U ROM_WIFI_InitTxBufferBoundary ./lib_wlan/lxbus_suspend.o: U ROM_WIFI_32K_Cmd ./lib_wlan/phydm_HWConfig.o: U ROM_odm_EVMdbToPercentage ./lib_wlan/phydm_HWConfig.o: U ROM_odm_QueryRxPwrPercentage ./lib_wlan/phydm_HWConfig.o: U ROM_odm_SignalScaleMapping_8711B ./lib_wlan/rtl8711b_xmit.o: U ROM_WIFI_BCN_VALID ./lib_wlan/rtl8711b_hal_init.o: U ROM_WIFI_ACM_CTRL ./lib_wlan/rtl8711b_hal_init.o: U ROM_WIFI_BASIC_RATE ./lib_wlan/rtl8711b_hal_init.o: U ROM_WIFI_BCN_FUNC ./lib_wlan/rtl8711b_hal_init.o: U ROM_WIFI_BSSID_SET ./lib_wlan/rtl8711b_hal_init.o: U ROM_WIFI_BWMapping ./lib_wlan/rtl8711b_hal_init.o: U ROM_WIFI_CAM_WRITE ./lib_wlan/rtl8711b_hal_init.o: U ROM_WIFI_CHECK_BSSID ./lib_wlan/rtl8711b_hal_init.o: U ROM_WIFI_CHECK_TXBUF ./lib_wlan/rtl8711b_hal_init.o: U ROM_WIFI_DISCONNECT ./lib_wlan/rtl8711b_hal_init.o: U ROM_WIFI_FIFO_CLEARN_UP ./lib_wlan/rtl8711b_hal_init.o: U ROM_WIFI_FillFakeTxdesc ./lib_wlan/rtl8711b_hal_init.o: U ROM_WIFI_FillTxdescSectype ./lib_wlan/rtl8711b_hal_init.o: U ROM_WIFI_INIT_BeaconParameters ./lib_wlan/rtl8711b_hal_init.o: U ROM_WIFI_MACADDR_SET ./lib_wlan/rtl8711b_hal_init.o: U ROM_WIFI_MEDIA_STATUS ./lib_wlan/rtl8711b_hal_init.o: U ROM_WIFI_MEDIA_STATUS1 ./lib_wlan/rtl8711b_hal_init.o: U ROM_WIFI_PROMISC_Cmd ./lib_wlan/rtl8711b_hal_init.o: U ROM_WIFI_ReadChipVersion ./lib_wlan/rtl8711b_hal_init.o: U ROM_WIFI_RESP_SIFS ./lib_wlan/rtl8711b_hal_init.o: U ROM_WIFI_RESUME_TxBeacon ./lib_wlan/rtl8711b_hal_init.o: U ROM_WIFI_SCMapping ./lib_wlan/rtl8711b_hal_init.o: U ROM_WIFI_SetOpmodeAP ./lib_wlan/rtl8711b_hal_init.o: U ROM_WIFI_SET_TSF ./lib_wlan/rtl8711b_hal_init.o: U ROM_WIFI_STOP_TXBeacon ./lib_wlan/HalPhyRf_8711B.o: U ROM_odm_SetCrystalCap ./lib_wlan/rtl8711b_phycfg.o: U ROM_odm_SetCrystalCap ``` ```mermaid sequenceDiagram participant Device participant AP as Access Point participant MAC as MAC Layer participant PHY as PHY Layer Note over Device,PHY: Initialization Phase Device->>MAC: ROM_WIFI_InitMacClk Device->>MAC: ROM_WIFI_Init32kClk Device->>MAC: ROM_WIFI_InitLxDma Device->>MAC: ROM_WIFI_INIT_MACADDR_SET Device->>MAC: ROM_WIFI_InitNetworkType Device->>MAC: ROM_WIFI_InitEDCA Device->>PHY: ROM_WIFI_ENABLE_BB_RF Note over Device,PHY: Connection Phase Device->>AP: ROM_WIFI_Set_MLME_Sitesurvey AP->>Device: Beacon Frames Device->>MAC: ROM_WIFI_BCN_VALID Device->>MAC: ROM_WIFI_CHECK_BSSID Device->>MAC: ROM_WIFI_Set_MLME_JOIN Device->>MAC: ROM_WIFI_BSSID_SET Note over Device,PHY: Operation Phase Device->>MAC: ROM_WIFI_Set_AC_Param MAC->>Device: ROM_WIFI_CHECK_TXBUF Device->>MAC: ROM_WIFI_SET_MAX_AGG_NUM Note over Device,PHY: Security Setup Device->>MAC: ROM_WIFI_SEC_CFG Device->>MAC: ROM_WIFI_CAM_WRITE Note over Device,PHY: Maintenance Device->>MAC: ROM_WIFI_TSF_GetByPort Device->>MAC: ROM_WIFI_IMR_UPDATE Device->>MAC: ROM_WIFI_High_Queue_Empty_Check ``` 1. init: - sysclock init (`ROM_WIFI_InitMacClk`, `ROM_WIFI_Init32kClk`) - DMA setup (`ROM_WIFI_InitLxDma`) - MAC address config (`ROM_WIFI_INIT_MACADDR_SET`) - Network type setup (`ROM_WIFI_InitNetworkType`) - EDCA params for QoS (`ROM_WIFI_InitEDCA`) - RF/Baseband enable (`ROM_WIFI_ENABLE_BB_RF`) 2. connect: - site survey to find networks (`ROM_WIFI_Set_MLME_Sitesurvey`) - beacon validation (`ROM_WIFI_BCN_VALID`) - BSSID checking (`ROM_WIFI_CHECK_BSSID`) - join request (`ROM_WIFI_Set_MLME_JOIN`) - BSSID setting (`ROM_WIFI_BSSID_SET`) 3. config: - AC (Access Category) param (`ROM_WIFI_Set_AC_Param`) - Buffer management? (`ROM_WIFI_CHECK_TXBUF`) - Aggregation configuration (`ROM_WIFI_SET_MAX_AGG_NUM`) 4. security: - Security configuration (`ROM_WIFI_SEC_CFG`) - CAM (Content Addressable Memory) (`ROM_WIFI_CAM_WRITE`) 5. maintain: - TSF (Timing Synchronization Function) (`ROM_WIFI_TSF_GetByPort`) - Interrupt mask updates (`ROM_WIFI_IMR_UPDATE`) - Queue monitoring (`ROM_WIFI_High_Queue_Empty_Check`) - MU-EDCA (Multi-User EDCA) `ROM_WIFI_AX_MUEDCA_Para` - BSS Coloring `ROM_WIFI_AX_BSS_COLOR_SET` - OFDMA (Orthogonal Frequency Division Multiple Access)