Files
rtl8710bx-re/docs/wifi.md

10 KiB

ROM wifi funcs

todo:

  • disasm the wifi binary
$ 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
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)