1 /* 2 * Copyright (c) 2020 HiSilicon (Shanghai) Technologies CO., LIMITED. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 * Description: Header file of WLAN product specification macro definition. 15 */ 16 17 #ifndef __WLAN_SPEC_HH503_ROM_H__ 18 #define __WLAN_SPEC_HH503_ROM_H__ 19 20 #include "wlan_types.h" 21 #include "oal_mem_pool.h" 22 23 #ifdef __cplusplus 24 #if __cplusplus 25 extern "C" { 26 #endif 27 #endif 28 29 /* AP keepalive参数,单位ms */ 30 #define WLAN_AP_KEEPALIVE_TRIGGER_TIME (15 * 1000) /* keepalive定时器触发周期 */ 31 #define DMAC_WLAN_AP_KEEPALIVE_TRIGGER_TIME (2 * 1000) /* device侧 keepalive定时器触发周期 */ 32 33 /* STA keepalive参数,单位ms */ 34 #define WLAN_STA_KEEPALIVE_TIME (25 * 1000) /* wlan0发送keepalive null帧间隔,keepalive 25s */ 35 #define WLAN_CL_KEEPALIVE_TIME (20 * 1000) /* P2P CL发送keepalive null帧间隔,避免CL被GO pvb唤醒,P2P cl 20s */ 36 37 /* Beacon Interval参数 */ 38 /* max beacon interval, ms */ 39 #define WLAN_BEACON_INTVAL_MAX 3500 40 /* min beacon interval */ 41 #define WLAN_BEACON_INTVAL_MIN 40 42 /* min beacon interval */ 43 #define WLAN_BEACON_INTVAL_DEFAULT 100 44 /* AP IDLE状态下beacon interval值 */ 45 #define WLAN_BEACON_INTVAL_IDLE 1000 46 #define WLAN_RTS_MAX 2346 47 /* 用于记录03支持的速率最大个数 */ 48 #define WLAN_MAX_SUPP_RATES 12 49 50 /* 每个用户支持的最大速率集个数 */ 51 #define HAL_TX_RATE_MAX_NUM 4 52 #define HAL_TX_RATE_NUM_0 0 53 /***************************************************************************** 54 2.2 其他协议/定义MAC 层协议类别的spec 55 *****************************************************************************/ 56 /* TID个数放入平台SPEC,默认的数据类型业务的TID */ 57 #define WLAN_TID_FOR_DATA 0 58 59 /* 接收队列的个数 与HAL_RX_DSCR_QUEUE_ID_BUTT相等 */ 60 #define HAL_RX_QUEUE_NUM 3 61 /* 发送队列的个数 */ 62 #define HAL_TX_QUEUE_NUM 6 63 64 /***************************************************************************** 65 2.2.10 协议节能STA侧功能 66 *****************************************************************************/ 67 /* PSM特性规格 */ 68 /* default DTIM period */ 69 #define WLAN_DTIM_DEFAULT 3 70 71 /***************************************************************************** 72 2.3 校准类别的spec 73 *****************************************************************************/ 74 /***************************************************************************** 75 2.4 安全协议类别的spec 76 *****************************************************************************/ 77 /***************************************************************************** 78 2.4.9 WPA功能 79 *****************************************************************************/ 80 /* 加密相关的宏定义 */ 81 /* 硬件MAC 最多等待32us, 软件等待40us */ 82 #define HAL_CE_LUT_UPDATE_TIMEOUT 4 83 84 /***************************************************************************** 85 2.5 性能类别的spec 86 *****************************************************************************/ 87 #define WLAN_AMPDU_TX_MAX_NUM 16 /* AMPDU发送端最大聚合子MPDU个数 */ 88 #define WLAN_AMPDU_TX_MAX_BUF_SIZE 64 /* 发送端的buffer size */ 89 #define WLAN_AMPDU_TX_SCHD_STRATEGY 2 /* 软件聚合逻辑,最大聚合设置为窗口大小的一半 */ 90 91 /* MAC RX BA_LUT表共32行 */ 92 #define HAL_MAX_RX_BA_LUT_SIZE 32 93 /* MAC TX BA_LUT表共32行 */ 94 #define HAL_MAX_TX_BA_LUT_SIZE 32 95 #define MAC_TX_BA_LUT_BMAP_LEN ((HAL_MAX_TX_BA_LUT_SIZE + 7) >> 3) 96 97 /***************************************************************************** 98 2.5.3 AMSDU功能 99 *****************************************************************************/ 100 101 /* >= WLAN_AMSDU_MAX_NUM/2 */ 102 #define WLAN_DSCR_SUBTABEL_MAX_NUM 1 103 104 /***************************************************************************** 105 2.5.6 小包优化 106 *****************************************************************************/ 107 /* 管理帧长度 */ 108 #define HAL_RX_MGMT_FRAME_LEN WLAN_MGMT_NETBUF_SIZE 109 /* 短包长度 */ 110 /* 短包队列会造成乱序问题,先关掉 */ 111 #define HAL_RX_SMALL_FRAME_LEN WLAN_SHORT_NETBUF_SIZE 112 113 /* 长包长度 */ 114 /* 80211帧最大长度:软件最大为1600,流20字节的余量,防止硬件操作越界 */ 115 #define HAL_RX_FRAME_LEN WLAN_LARGE_NETBUF_SIZE 116 #define HAL_RX_FRAME_MAX_LEN 8000 117 118 #define SMALL_IRQ_CON_TH 2 /* 连续N个中断后开始检查硬件队列资源剩余量,避免硬件断流 */ 119 #define NORMAL_IRQ_CON_TH 2 120 #define SMALL_RX_DSCR_CON_TH 48 /* rx持续性门限值:中断超过门限后检查可用rx描述符,并统一补充到该门限值 */ 121 #define NORMAL_RX_DSCR_CON_TH 24 122 123 #define WLAN_TPC_WORK_MODE WLAN_TPC_WORK_MODE_ENABLE 124 125 /***************************************************************************** 126 2.6.6 TXBF功能 127 *****************************************************************************/ 128 #define WLAN_PROTECT_MAX_LEN 36 /* 保护帧预留的最大长度 */ 129 #define WLAN_ONEPACK_PKT_LEN 24 /* ONEPACKET发送的NULL DATA帧长度 */ 130 #define WLAN_COEX_PKT_LEN 32 /* coex发送的NULL DATA帧长度 */ 131 132 /***************************************************************************** 133 2.8 架构形态类别的spec 134 *****************************************************************************/ 135 /***************************************************************************** 136 2.8.1 芯片适配规格 137 *****************************************************************************/ 138 139 /* 2.4G 芯片动态功率调整范围 */ 140 #define WLAN_2G_DYN_POW_UPPER_RANGE 30 141 #define WLAN_2G_DYN_POW_LOWER_RANGE 100 142 #define WLAN_2G_DYN_POW_RANGE_MIN 100 143 144 /* 5G 芯片动态功率动态调整范围 */ 145 #define WLAN_5G_DYN_POW_RANGE_MIN 50 146 #define WLAN_5G_DYN_POW_UPPER_RANGE 20 147 148 /***************************************************************************** 149 2.8.2 HAL Device0芯片适配规格 150 *****************************************************************************/ 151 /* HAL DEV0支持的空间流数 */ 152 #if (WLAN_SINGLE_NSS == WLAN_MAX_NSS_NUM) 153 #define WLAN_HAL0_NSS_NUM WLAN_SINGLE_NSS 154 #elif (WLAN_DOUBLE_NSS == WLAN_MAX_NSS_NUM) 155 #define WLAN_HAL0_NSS_NUM WLAN_DOUBLE_NSS 156 #endif 157 158 /* HAL DEV0支持的最大带宽 FPGA只支持80M */ 159 #if defined(_PRE_WLAN_FEATURE_WIDTH_MODE) 160 #if defined(_PRE_MAX_WIDTH_80M) && (_PRE_WLAN_FEATURE_WIDTH_MODE == _PRE_MAX_WIDTH_80M) 161 #define WLAN_HAL0_BW_MAX_WIDTH WLAN_BW_CAP_40M 162 #elif defined(_PRE_MAX_WIDTH_40M) && (_PRE_WLAN_FEATURE_WIDTH_MODE == _PRE_MAX_WIDTH_40M) 163 #define WLAN_HAL0_BW_MAX_WIDTH WLAN_BW_CAP_40M 164 #elif defined(_PRE_MAX_WIDTH_20M) && (_PRE_WLAN_FEATURE_WIDTH_MODE == _PRE_MAX_WIDTH_20M) 165 #define WLAN_HAL0_BW_MAX_WIDTH WLAN_BW_CAP_20M 166 #endif 167 #endif 168 169 /* HAL DEV0 支持SOUNDING功能 */ 170 #define WLAN_HAL0_11N_SOUNDING OSAL_TRUE 171 172 /* HAL DEV0 支持Green Field功能 */ 173 #define WLAN_HAL0_GREEN_FIELD OSAL_TRUE 174 175 /* HAL DEV0是否支持窄带 */ 176 #define WLAN_HAL0_NB_IS_EN OSAL_FALSE 177 178 /* HAL DEV0是否支持1024QAM */ 179 #define WLAN_HAL0_1024QAM_IS_EN OSAL_FALSE 180 181 /* HAL DEV0的SU_BFEE能力 */ 182 #define WLAN_HAL0_SU_BFEE_NUM 4 183 184 /* HAL DEV0的通道选择 */ 185 #if (WLAN_SINGLE_NSS == WLAN_MAX_NSS_NUM) 186 #define WLAN_HAL0_PHY_CHAIN_SEL WLAN_PHY_CHAIN_ZERO 187 #elif (WLAN_DOUBLE_NSS == WLAN_MAX_NSS_NUM) 188 #define WLAN_HAL0_PHY_CHAIN_SEL WLAN_PHY_CHAIN_DOUBLE 189 #endif 190 191 /* HAL DEV0的需要用单天线发送11b等帧时的TX通道选择 */ 192 #define WLAN_HAL0_SNGL_TX_CHAIN_SEL WLAN_TX_CHAIN_ZERO 193 194 /* HAL DEV0的RF通道选择 */ 195 #define WLAN_HAL0_RF_CHAIN_SEL WLAN_RF_CHAIN_DOUBLE 196 197 /* HAL DEV0是否support tx stbc, su/mu txbfer */ 198 #if (WLAN_SINGLE_NSS == WLAN_MAX_NSS_NUM) 199 #define WLAN_HAL0_TX_STBC_IS_EN OSAL_FALSE 200 #define WLAN_HAL0_SU_BFER_IS_EN OSAL_FALSE 201 #define WLAN_HAL0_MU_BFER_IS_EN OSAL_FALSE 202 #elif (WLAN_DOUBLE_NSS == WLAN_MAX_NSS_NUM) 203 /* 当前double nss下的能力以ASIC定义,FPGA可通过私有定制化文件ini来覆盖刷新 */ 204 #define WLAN_HAL0_TX_STBC_IS_EN OSAL_TRUE 205 #define WLAN_HAL0_SU_BFER_IS_EN OSAL_TRUE 206 #define WLAN_HAL0_MU_BFER_IS_EN OSAL_FALSE 207 #endif 208 209 /* HAL DEV0是否support rx stbc, su/mu txbfee */ 210 /* 当前能力以ASIC的能力来定义,FPGA可通过私有定制化文件ini来覆盖刷新 */ 211 #define WLAN_HAL0_RX_STBC_IS_EN OSAL_TRUE 212 #define WLAN_HAL0_SU_BFEE_IS_EN OSAL_TRUE 213 #define WLAN_HAL0_MU_BFEE_IS_EN OSAL_FALSE 214 #define WLAN_HAL0_11N_TXBF_IS_EN OSAL_FALSE 215 #define WLAN_HAL0_CONTROL_FRM_TX_DOUBLE_CHAIN_FLAG OSAL_FALSE 216 217 #define WLAN_HAL0_LDPC_IS_EN OSAL_FALSE 218 /* 11ax开关 */ 219 #ifdef _PRE_WLAN_FEATURE_11AX 220 #define WLAN_HAL0_11AX_IS_EN OSAL_TRUE 221 #else 222 #define WLAN_HAL0_11AX_IS_EN OSAL_FALSE 223 #endif 224 #define WLAN_HAL0_DPD_IS_EN OSAL_TRUE 225 226 #define WLAN_HAL0_RADAR_DETECTOR_IS_EN OSAL_TRUE 227 /* HAL DEV0支持TXOP PS */ 228 #define WLAN_HAL0_TXOPPS_IS_EN OSAL_TRUE 229 230 /***************************************************************************** 231 2.8.2 STA AP规格 232 *****************************************************************************/ 233 /* 通道 */ 234 #define WLAN_RF_0 0 235 #define WLAN_RF_1 1 236 /***************************************************************************** 237 2.10.3 RSSI 238 *****************************************************************************/ 239 #define WLAN_NEAR_DISTANCE_RSSI (-20) /* 默认近距离信号门限-20dBm */ 240 #define WLAN_NEAR_DISTANCE_ADJUST_RSSI (15) /* 近距离默认校准15dB */ 241 #define WLAN_FAR_DISTANCE_RSSI (-60) /* 默认远距离信号门限-60dBm */ 242 #define WLAN_NORMAL_DISTANCE_RSSI_DOWN (-53) /* 信号强度大于-53dBm时,才认为是非超远距离 */ 243 #define WLAN_FIX_MAX_POWER_RSSI (-55) /* 固定最大功率信号门限 */ 244 #define WLAN_RSSI_ADJUST_TH (-88) /* 软件上报RSSI的调整阈值, 低于改阈值rssi-=2 */ 245 246 /***************************************************************************** 247 2.10.4 TXBF cap 248 *****************************************************************************/ 249 #define OAL_TXBFER_USER_NUM 2 /* txbfer用户数量:STA & P2PCL AP不支持 */ 250 /* buffer size = 2*(4+6)/2*250/8(80M) = 312bytes,另外为snr值预留10byte,预留部分内存到336bytes */ 251 #define WLAN_TXBFER_BUFF_SIZE 336 252 #define WALN_TXBFER_PKT_LEN (WLAN_TXBFER_BUFF_SIZE * OAL_TXBFER_USER_NUM) 253 #define WLAN_BEACON_PKT_LEN 768 254 #define BT_POSTPREEMPT_TIMEOUT_US (150) 255 #define BT_ABORT_RETRY_TIMES_MAX (10) 256 #define BT_PREEMPT_TIMEOUT_US (50) 257 #define BTCOEX_BT_DEFAULT_DURATION (0xFF) 258 #define OCCUPIED_PERIOD (60000) 259 260 /***************************************************************************** 261 2.13 Calibration FEATURE spec 262 *****************************************************************************/ 263 /* 校准数据上传下发MASK */ 264 #define CALI_DATA_REFRESH_MASK (0x1) 265 #define CALI_POWER_LVL_DBG_MASK (0x4) 266 267 #define WLAN_M2S_BLACKLIST_MAX_NUM (16) /* m2s下发黑名单用户数,需要和上层保持一致 */ 268 269 #ifdef __cplusplus 270 #if __cplusplus 271 } 272 #endif 273 #endif 274 275 #endif /* #ifndef __WLAN_SPEC_HH503_ROM_H__ */ 276 277