Files
rtl8710bx-re/docs/wifi.md

207 lines
10 KiB
Markdown

# 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)