• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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