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_ROM_H 18 #define WLAN_SPEC_ROM_H 19 20 /***************************************************************************** 21 其他头文件包含 22 *****************************************************************************/ 23 #include "wlan_spec_hh503_rom.h" 24 #include "wlan_spec_type_rom.h" 25 #include "wlan_phy_common_rom.h" 26 27 #ifdef __cplusplus 28 #if __cplusplus 29 extern "C" { 30 #endif 31 #endif 32 /***************************************************************************** 33 1.1.1 版本spec 34 *****************************************************************************/ 35 #define WLAN_CHIP_VERSION_WF51V100H 0x11510101 36 37 #define WLAN_CHIP_VERSION_WF51V100L 0x11510102 38 39 /***************************************************************************** 40 1.1.2 多Core对应spec 41 *****************************************************************************/ 42 /* WiFi对应系统CORE的数量 为1 */ 43 #define WLAN_FRW_MAX_NUM_CORES 1 44 45 /***************************************************************************** 46 2 WLAN 宏定义 47 *****************************************************************************/ 48 /***************************************************************************** 49 2.1 WLAN芯片对应的spec 50 *****************************************************************************/ 51 /* 每个board支持chip的最大个数,总数不会超过8个 */ 52 #define WLAN_CHIP_MAX_NUM_PER_BOARD 1 53 54 /* 每个chip支持hal device的最大个数,总数不会超过8个 */ 55 #define WLAN_DEVICE_MAX_NUM_PER_CHIP 1 56 57 #define WLAN_SERVICE_DEVICE_MAX_NUM_PER_CHIP 1 /* 每个chip支持业务device的最大个数 */ 58 59 /* wg. 以下两个宏含义一致 HMAC和DMAC需要归一 */ 60 /* 整个BOARD支持的最大的业务device数目 */ 61 #define WLAN_SERVICE_DEVICE_SUPPORT_MAX_NUM_SPEC \ 62 (WLAN_CHIP_MAX_NUM_PER_BOARD * WLAN_SERVICE_DEVICE_MAX_NUM_PER_CHIP) 63 64 #define WLAN_SERVICE_DEVICE_MAX_NUM 1 /* 业务device数量,单device与上面宏合并 */ 65 66 /* 业务AP规格 */ 67 #define WLAN_SERVICE_AP_MAX_NUM_PER_DEVICE 2 68 /* 业务STA规格 */ 69 #define WLAN_SERVICE_STA_MAX_NUM_PER_DEVICE 3 70 /* 业务ap sta共存时vap数目 */ 71 #define WLAN_AP_STA_COEXIST_VAP_NUM 0 72 73 /* 由于最大业务VAP个数需要按照设备同时创建的最大规格初始化,目前按照最大的规格设置即可 */ 74 #define WLAN_CONFIG_VAP_MAX_NUM_PER_DEVICE 1 /* 配置VAP个数,一个业务device一个 */ 75 /* 业务VAP数目(4个):STA 1个+P2P 1个+ SOFT AP 1个+1个预留扩展 */ 76 #define WLAN_SERVICE_VAP_MAX_NUM_PER_DEVICE 3 77 78 /* 每个device支持vap的最大个数=最大业务VAP数目+配置VAP数量 */ 79 80 /* 4个业务VAP + 1个配置vap */ 81 #define WLAN_VAP_MAX_NUM_PER_DEVICE_LIMIT \ 82 (WLAN_CONFIG_VAP_MAX_NUM_PER_DEVICE + WLAN_SERVICE_VAP_MAX_NUM_PER_DEVICE) 83 84 /* 整个BOARD支持的最大的VAP数目 */ 85 #define WLAN_VAP_SUPPORT_MAX_NUM_LIMIT \ 86 (WLAN_SERVICE_DEVICE_SUPPORT_MAX_NUM_SPEC * WLAN_VAP_MAX_NUM_PER_DEVICE_LIMIT) 87 88 #define WLAN_VAP_NUM_PER_BOARD WLAN_VAP_SUPPORT_MAX_NUM_LIMIT 89 90 /* 整个BOARD支持的最大业务VAP的数目 */ 91 #define WLAN_SERVICE_VAP_SUPPORT_MAX_NUM_LIMIT \ 92 (WLAN_SERVICE_DEVICE_SUPPORT_MAX_NUM_SPEC * (WLAN_VAP_MAX_NUM_PER_DEVICE_LIMIT - WLAN_CONFIG_VAP_MAX_NUM_PER_DEVICE)) 93 94 /* 以下两个成员可以定制化: WLAN_ASSOC_USER_MAX_NUM对应g_us_assoc_max_user,WLAN_ACTIVE_USER_MAX_NUM对应g_us_active_max_user */ 95 /* 关联用户的最大个数 */ 96 #define WLAN_ASSOC_USER_MAX_NUM 6 97 #define WLAN_VAP_USER_HASH_MAX_VALUE (WLAN_ASSOC_USER_MAX_NUM * 2) /* 2为扩展因子 */ 98 #define WLAN_DTCM_RAM_ASSOC_USER_MAX_NUM 6 /* DTCM_RAM中定义的关联用户最大个数,为总用户规格16的一半 */ 99 100 /* 不可用的RA LUT IDX */ 101 #define WLAN_INVALID_RA_LUT_IDX WLAN_ACTIVE_USER_MAX_NUM 102 103 /* 以下三个用户规格,表示软件支持最大规格; 与之对应的是MAC_RES_XXX(大于等于RES_XXX),为定制化得到,对应WLAN_ASSOC_USER_MAX_NUM为g_us_assoc_max_user */ 104 /* 使用规则:这里三个用于oal oam hal初始化成员,或者数组下标,与之对应mac res的单播和组播,以及整board user个数会封装成函数供业务层代码调用 */ 105 /* board最大关联用户数 = 1个CHIP支持的最大关联用户数 * board上面的CHIP数目 */ 106 #define WLAN_ASOC_USER_MAX_NUM_LIMIT (WLAN_ASSOC_USER_MAX_NUM * WLAN_CHIP_MAX_NUM_PER_BOARD) 107 108 /* board组播用户数 */ 109 #define WLAN_MULTI_USER_MAX_NUM_LIMIT (WLAN_SERVICE_VAP_SUPPORT_MAX_NUM_LIMIT) 110 111 /* board最大用户数 = 最大关联用户数 + 组播用户个数 */ 112 #define WLAN_USER_MAX_USER_LIMIT (WLAN_ASOC_USER_MAX_NUM_LIMIT + WLAN_MULTI_USER_MAX_NUM_LIMIT) 113 114 /***************************************************************************** 115 2.2 WLAN协议对应的spec 116 *****************************************************************************/ 117 /* 速率功率表各协议的档位数量 */ 118 #define WLAN_POW_11B_RATE_NUM 4 /* 11b速率数目 */ 119 #define WLAN_POW_LEGACY_RATE_NUM 8 /* 11a/g速率数目 */ 120 #define WLAN_POW_NONLEGACY_20M_NUM 12 /* 11n_11ac_11ax_20M速率数目最大值 */ 121 #define WLAN_POW_NONLEGACY_40M_NUM 13 /* 11n_11ac_11ax_40M速率数目最大值+mcs32 */ 122 // 速率功率表的表长 123 #define WLAN_POW_RATE_POW_CODE_TABLE_2G_LEN (WLAN_POW_11B_RATE_NUM + WLAN_POW_LEGACY_RATE_NUM + \ 124 WLAN_POW_NONLEGACY_20M_NUM + WLAN_POW_NONLEGACY_40M_NUM) 125 // 速率功率表的协议速率偏移 126 /* 11b 速率索引偏移 */ 127 #define WLAN_POW_RATE_POW_CODE_11B_OFFSET 0 128 /* 11a/g 速率索引偏移 */ 129 #define WLAN_POW_RATE_POW_CODE_LEGACY_OFFSET WLAN_POW_RATE_POW_CODE_11B_OFFSET 130 /* 11n_11ac_11ax_20M 速率索引偏移 */ 131 #define WLAN_POW_RATE_POW_CODE_NONLEGACY_20M_OFFSET (WLAN_POW_11B_RATE_NUM + WLAN_POW_LEGACY_RATE_NUM) 132 /* 11n_11ac_11ax_40M 速率索引偏移 */ 133 #define WLAN_POW_RATE_POW_CODE_NONLEGACY_40M_OFFSET \ 134 (WLAN_POW_RATE_POW_CODE_NONLEGACY_20M_OFFSET + WLAN_POW_NONLEGACY_20M_NUM) 135 /* 11n_11ac_11ax_80M 速率索引偏移 */ 136 #define WLAN_POW_RATE_POW_CODE_NONLEGACY_80M_OFFSET WLAN_POW_RATE_POW_CODE_INVALID_OFFSET 137 /* 11n_11ac_11ax_160M 速率索引偏移 */ 138 #define WLAN_POW_RATE_POW_CODE_NONLEGACY_160M_OFFSET WLAN_POW_RATE_POW_CODE_INVALID_OFFSET 139 /***************************************************************************** 140 2.3 oam相关的spec 141 *****************************************************************************/ 142 #define WLAN_OAM_FILE_PATH "\\home\\oam.log" /* LINUX和裸系统下,LOG文件默认的保存位置 */ 143 144 /***************************************************************************** 145 2.4 mem对应的spec 146 *****************************************************************************/ 147 /***************************************************************************** 148 2.4.1 内存池规格 149 *****************************************************************************/ 150 /* ws73 3個VAP,每個VAP提供472字節長度的存放地址 */ 151 #define WLAN_TXBFEE_BUFF_SIZE_PER_VAP 472 152 #define WLAN_TXBFEE_BUFF_SIZE (WLAN_TXBFEE_BUFF_SIZE_PER_VAP * WLAN_SERVICE_VAP_MAX_NUM_PER_DEVICE) 153 #define WLAN_MEM_MAX_USERS_NUM 4 /* 共享同一块内存的最大用户数 */ 154 /***************************************************************************** 155 2.4.2 共享描述符内存池配置信息 156 *****************************************************************************/ 157 #define WLAN_MAX_NETBUF_SIZE (WLAN_LARGE_NETBUF_SIZE + OAL_MAX_MAC_HDR_LEN) /* 最大帧长:帧头+payload */ 158 /* 整个device所有TID的最大MPDU数量限制 159 需要重新定义,以支持调度逻辑 160 */ 161 #ifdef WIFI_TCM_OPTIMIZE 162 #define WLAN_TID_MPDU_NUM_LIMIT 72 163 #else 164 #define WLAN_TID_MPDU_NUM_LIMIT 36 /* app版本需要限制总动态内存使用 */ 165 #endif 166 #define WLAN_SINGLE_TID_MPDU_NUM_LIMIT 12 167 168 #ifdef WIFI_TCM_OPTIMIZE 169 #define MAX_MPDU_NUM_IN_PS_QUEUE 32 170 #define MAX_MPDU_NUM_IN_PS_QUEUE_TOTAL 32 171 #else 172 #define MAX_MPDU_NUM_IN_PS_QUEUE 4 173 #define MAX_MPDU_NUM_IN_PS_QUEUE_TOTAL 16 /* app版本需要限制总动态内存使用 */ 174 #endif 175 176 // WLAN_MEM_NETBUF_CNT1由_PRE_WLAN_FEATURE_11K特性解耦 177 #if defined(_PRE_OS_VERSION_LITEOS) && defined(_PRE_OS_VERSION) \ 178 && (_PRE_OS_VERSION_LITEOS == _PRE_OS_VERSION) 179 #define WLAN_MEM_NETBUF_CNT1 16 180 #else 181 #define WLAN_MEM_NETBUF_CNT1 192 /* 接收数据帧是AMSDU,其中的每个MSDU对应一个克隆netbuf */ 182 #endif 183 #define WLAN_MEM_SHARED_RX_DSCR_SIZE 68 184 #define WLAN_MEM_NETBUF_SIZE2 1600 185 #define WLAN_LARGE_NETBUF_SIZE_TMP 1200 186 #define WLAN_HMEM_EVENT_SIZE2 528 /* 注意: 事件内存长度包括4字节IPC头长度 */ 187 #define WLAN_HMEM_LOCAL_SIZE2 144 188 189 #define WLAN_WPS_IE_MAX_SIZE (WLAN_HMEM_EVENT_SIZE2 - 128) 190 191 /***************************************************************************** 192 2.4.10 RF通道数规格已放入WLAN_SPEC 193 *****************************************************************************/ 194 #ifdef _PRE_WLAN_FEATURE_DAQ 195 #define WLAN_MEM_MAC_TEST_INFO_SIZE (64 * 1024) 196 #endif 197 198 199 /***************************************************************************** 200 2.4.11 TCP ACK优化 201 *****************************************************************************/ 202 /* tcp ack过滤功能不再默认打开,根据流量调整 */ 203 #define DEFAULT_TX_TCP_ACK_OPT_ENABLE (OSAL_FALSE) 204 #define DEFAULT_RX_TCP_ACK_OPT_ENABLE (OSAL_FALSE) 205 #define DEFAULT_TX_TCP_ACK_THRESHOLD (1) /* 丢弃发送ack 的门限 */ 206 #define DEFAULT_RX_TCP_ACK_THRESHOLD (1) /* 丢弃接收ack 的门限 */ 207 /***************************************************************************** 208 2.5 frw相关的spec 209 *****************************************************************************/ 210 211 /****************************************************************************** 212 事件队列配置信息表 213 注意: 每个队列所能容纳的最大事件个数必须是2的整数次幂 214 *******************************************************************************/ 215 /* host event cfg table */ 216 #define WLAN_ACTIVE_USER_MAX_NUM 6 /* 活跃用户的最大个数 */ 217 218 /* 活跃用户索引位图长度 */ 219 #define WLAN_ACTIVE_USER_IDX_BMAP_LEN ((WLAN_ACTIVE_USER_MAX_NUM + 7)>> 3) 220 221 /***************************************************************************** 222 2.8.2 STA AP规格 223 *****************************************************************************/ 224 /* 通道数 */ 225 #define WLAN_RF_CHANNEL_NUMS 1 226 /* RF PLL个数 */ 227 #define WLAN_RF_PLL_NUMS 1 228 229 #ifdef __cplusplus 230 #if __cplusplus 231 } 232 #endif 233 #endif 234 235 #endif /* end of file */ 236 237