1# Copyright (C) 2021 HiSilicon (Shanghai) Technologies CO., LIMITED. 2# 3# This program is free software; you can redistribute it and/or 4# modify it under the terms of the GNU General Public License 5# as published by the Free Software Foundation; either version 2 6# of the License, or (at your option) any later version. 7# 8# This program is distributed in the hope that it will be useful, 9# but WITHOUT ANY WARRANTY; without even the implied warranty of 10# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11# GNU General Public License for more details. 12# 13# You should have received a copy of the GNU General Public License 14# along with this program; if not, write to the Free Software 15# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 16 17import("//drivers/hdf_core/adapter/khdf/liteos/hdf.gni") 18 19module_switch = 20 defined(LOSCFG_DRIVERS_HDF_WIFI) && defined(LOSCFG_DRIVERS_HI3881) 21module_name = "hi3881" 22 23HDM_WIFI_ROOT = "//drivers/hdf_core/framework/model/network/wifi" 24 25n = false 26y = true 27 28##################path of compile file :start############### 29#####wifi##### 30OAL_PATH = "oal" 31OAM_PATH = "oam" 32FRW_PATH = "frw" 33MAC_PATH = "mac/common" 34HMAC_PATH = "mac/hmac" 35HCC_PATH = "hcc" 36WAL_PATH = "wal" 37ADPATER_PATH = "hdfadapt" 38 39CFG_ANTI_INTERF = y 40CFG_CCA_OPT = y 41CFG_DBAC = y 42CFG_EDCA_OPT = y 43CFG_EDCA_OPT_AP = y 44CFG_SCHEDULE = y 45CFG_TRAFFIC_CTL = n 46CFG_TPC = y 47CFG_RF_1102CALI = y 48CFG_RF_110X_CALI_DPD = n 49CFG_NEW_IQ = y 50CFG_ALG_CFG = n 51CFG_HCC_TASK = y 52 53########################flash cut begin######################## 54######## CFG_XXX_ROM can't be set to n ######## 55CFG_P2P = y 56CFG_P2P_ROM = y 57CFG_WAPI = n 58CFG_WAPI_ROM = y 59CFG_WOW = y 60CFG_WOW_ROM = y 61CFG_REKEY_OFFLOAD = n 62CFG_REKEY_OFFLOAD_ROM = y 63CFG_PROMIS = y 64CFG_PROMIS_ROM = y 65CFG_MFG_TEST = y 66CFG_CE_MODE = y 67CFG_FCC_MODE = n 68CFG_MFG_FW = n 69 70########################flash cut end########################## 71CFG_BTCOEX_ROM = y 72CFG_ANY = n 73CFG_STA_PM = y 74CFG_MESH = n 75CFG_TCP_OPT = n 76CFG_TX_CLASSIFY_LAN_TO_WLAN = n 77CFG_UAPSD = y 78CFG_ARP_OFFLOAD = y 79CFG_DHCP_OFFLOAD = y 80CFG_LITEOS = y 81CFG_SIGMA = y 82CFG_HIPRIV = y 83LOSCFG_COMPILER_HI3861_FLASH = n 84LOSCFG_COMPILER_HI3861_ASIC = n 85 86hdf_driver(module_name) { 87 sources = [ 88 "$OAL_PATH/exception_rst.c", 89 "$OAL_PATH/oal_cfg80211.c", 90 "$OAL_PATH/oal_chr.c", 91 "$OAL_PATH/oal_kernel_file.c", 92 "$OAL_PATH/oal_main.c", 93 "$OAL_PATH/oal_mem.c", 94 "$OAL_PATH/oal_net.c", 95 "$OAL_PATH/oal_sdio_host.c", 96 "$OAL_PATH/oal_shellcmd.c", 97 "$OAL_PATH/oal_util.c", 98 "$OAL_PATH/plat_board_common_sdio.c", 99 "$OAL_PATH/plat_firmware.c", 100 "$OAL_PATH/plat_pm.c", 101 "$OAL_PATH/plat_pm_wlan.c", 102 "$OAL_PATH/plat_sdio.c", 103 ] 104 if (CFG_LITEOS) { 105 sources += [ 106 "$OAL_PATH/hi_event.c", 107 "$OAL_PATH/hi_task.c", 108 "$OAL_PATH/hi_time.c", 109 "$OAL_PATH/os_sys.c", 110 ] 111 } 112 sources += [ 113 "$ADPATER_PATH/hdf_driver_register.c", 114 "$ADPATER_PATH/hdfinit_3881.c", 115 "$ADPATER_PATH/net_adpater.c", 116 ] 117 sources += [ 118 "$OAM_PATH/oam_log.c", 119 "$OAM_PATH/oam_main.c", 120 ] 121 sources += [ 122 "$FRW_PATH/frw_event.c", 123 "$FRW_PATH/frw_event_sched.c", 124 "$FRW_PATH/frw_main.c", 125 "$FRW_PATH/frw_task.c", 126 "$FRW_PATH/frw_timer.c", 127 ] 128 sources += [ 129 "$HMAC_PATH/hmac_11i.c", 130 "$HMAC_PATH/hmac_blockack.c", 131 "$HMAC_PATH/hmac_chan_mgmt.c", 132 "$HMAC_PATH/hmac_config.c", 133 "$HMAC_PATH/hmac_crypto_tkip.c", 134 "$HMAC_PATH/hmac_device.c", 135 "$HMAC_PATH/hmac_encap_frame.c", 136 "$HMAC_PATH/hmac_encap_frame_ap.c", 137 "$HMAC_PATH/hmac_encap_frame_sta.c", 138 "$HMAC_PATH/hmac_event.c", 139 "$HMAC_PATH/hmac_frag.c", 140 "$HMAC_PATH/hmac_fsm.c", 141 "$HMAC_PATH/hmac_main.c", 142 "$HMAC_PATH/hmac_mgmt_ap.c", 143 "$HMAC_PATH/hmac_mgmt_bss_comm.c", 144 "$HMAC_PATH/hmac_mgmt_classifier.c", 145 "$HMAC_PATH/hmac_mgmt_sta.c", 146 "$HMAC_PATH/hmac_protection.c", 147 "$HMAC_PATH/hmac_rx_data.c", 148 "$HMAC_PATH/hmac_rx_filter.c", 149 "$HMAC_PATH/hmac_scan.c", 150 "$HMAC_PATH/hmac_sme_sta.c", 151 "$HMAC_PATH/hmac_tx_data.c", 152 "$HMAC_PATH/hmac_uapsd.c", 153 "$HMAC_PATH/hmac_user.c", 154 "$HMAC_PATH/hmac_vap.c", 155 ] 156 if (CFG_EDCA_OPT_AP) { 157 sources += [ "$HMAC_PATH/hmac_edca_opt.c" ] 158 } 159 if (CFG_P2P) { 160 sources += [ "$HMAC_PATH/hmac_p2p.c" ] 161 } 162 if (CFG_TCP_OPT) { 163 sources += [ "$HMAC_PATH/hmac_tcp_opt.c" ] 164 } 165 if (CFG_TX_CLASSIFY_LAN_TO_WLAN) { 166 sources += [ "$HMAC_PATH/hmac_traffic_classify.c" ] 167 } 168 if (CFG_WOW) { 169 sources += [ "$HMAC_PATH/hmac_wow.c" ] 170 } 171 if (CFG_ANY) { 172 sources += [ "$HMAC_PATH/hmac_any.c" ] 173 } 174 if (CFG_WAPI) { 175 sources += [ 176 "$HMAC_PATH/hmac_wapi.c", 177 "$HMAC_PATH/hmac_wapi_sms4.c", 178 "$HMAC_PATH/hmac_wapi_wpi.c", 179 ] 180 } 181 sources += [ 182 "$WAL_PATH/hi_wifi_driver_api.c", 183 "$WAL_PATH/wal_11d.c", 184 "$WAL_PATH/wal_cfg80211.c", 185 "$WAL_PATH/wal_customize.c", 186 "$WAL_PATH/wal_event.c", 187 "$WAL_PATH/wal_event_msg.c", 188 "$WAL_PATH/wal_hipriv.c", 189 "$WAL_PATH/wal_ioctl.c", 190 "$WAL_PATH/wal_linux_flowctl.c", 191 "$WAL_PATH/wal_mac80211.c", 192 "$WAL_PATH/wal_main.c", 193 "$WAL_PATH/wal_regdb.c", 194 "$WAL_PATH/wal_scan.c", 195 ] 196 if (CFG_LITEOS) { 197 sources += [ "$WAL_PATH/wal_cfg80211_apt.c" ] 198 } 199 sources += [ 200 "$MAC_PATH/mac_data.c", 201 "$MAC_PATH/mac_device.c", 202 "$MAC_PATH/mac_frame.c", 203 "$MAC_PATH/mac_ie.c", 204 "$MAC_PATH/mac_mib.c", 205 "$MAC_PATH/mac_pm_driver.c", 206 "$MAC_PATH/mac_regdomain.c", 207 "$MAC_PATH/mac_resource.c", 208 "$MAC_PATH/mac_user.c", 209 "$MAC_PATH/mac_vap.c", 210 ] 211 sources += [ 212 "$HCC_PATH/hcc_comm.c", 213 "$HCC_PATH/hcc_hmac.c", 214 "$HCC_PATH/hcc_host.c", 215 "$HCC_PATH/hcc_task.c", 216 "$HCC_PATH/hmac_hcc_adapt.c", 217 ] 218 219 include_dirs = [ 220 "$HDM_WIFI_ROOT/include", 221 "$HDM_WIFI_ROOT/core", 222 "$HDM_WIFI_ROOT/core/components/softap", 223 "$HDM_WIFI_ROOT/core/components/sta", 224 "$HDM_WIFI_ROOT/core/components/eapol", 225 "$HDM_WIFI_ROOT/platform/include", 226 "$HDM_WIFI_ROOT/core/module", 227 "$HDM_WIFI_ROOT/platform/include/qos", 228 "linuxkpi/include", 229 "wal", 230 "oam", 231 "mac/hmac", 232 "mac/common", 233 "hcc", 234 "frw", 235 "oal", 236 "include", 237 "hdfadapt", 238 ] 239 240 defines = [ 241 "_PRE_OS_VERSION_LINUX=1", 242 "_PRE_OS_VERSION_LITEOS=2", 243 "_PRE_FRW_FEATURE_PROCESS_ENTITY_THREAD=0", 244 "_PRE_FRW_FEATURE_PROCESS_ENTITY_TASKLET=1", 245 "_PRE_FRW_FEATURE_PROCESS_ENTITY_TYPE=_PRE_FRW_FEATURE_PROCESS_ENTITY_THREAD", 246 "_PRE_MULTI_CORE_MODE_SMP=1", 247 "_PRE_MULTI_CORE_MODE_OFFLOAD_HMAC=2", 248 "_PRE_MULTI_CORE_MODE_OFFLOAD_DMAC=3", 249 "_PRE_BIG_CPU_ENDIAN=0", 250 "_PRE_LITTLE_CPU_ENDIAN=1", 251 "_PRE_CPU_ENDIAN=_PRE_LITTLE_CPU_ENDIAN", 252 "_HI_BOARD_FPGA=1", 253 "_HI_BOARD_ASIC=2", 254 "_PRE_WLAN_FEATURE_PMF", 255 "_PRE_WLAN_FEATURE_AUTORATE", 256 "_PRE_WLAN_PERFORM_TPC", 257 "_PRE_DBAC_DYNAMIC_POLICY", 258 "_PRE_WLAN_FEATURE_AGGR_OPTIMIZE", 259 "_PRE_WLAN_FEATURE_ALG_CFG_ROM", 260 "_PRE_WLAN_FEATURE_FLOWCTRL", 261 "_PRE_WLAN_FEATURE_CLASSIFY", 262 "_PRE_WLAN_FEATURE_ALWAYS_TX", 263 "_PRE_WLAN_FEATURE_WPA", 264 "_PRE_WLAN_FEATURE_WPA2", 265 "_PRE_WLAN_FEATURE_AMPDU", 266 "_PRE_WLAN_FEATURE_DHCP_OFFLOAD_ROM", 267 "_PRE_WLAN_FEATURE_PKT_MEM_OPT", 268 "_PRE_WLAN_PM_FEATURE_FORCESLP_RESUME", 269 "__BITS_PER_OAL_LONG=32", 270 "_PRE_WLAN_FEATURE_11D", 271 "_PRE_WLAN_FEATURE_ANY_ROM", 272 "_PRE_WLAN_FEATURE_CSI", 273 "_PRE_WLAN_FEATURE_STA_UAPSD", 274 "_PRE_WLAN_FEATURE_MESH_ROM", 275 "_PRE_WLAN_FEATURE_BW_HIEX", 276 "_PRE_XTAL_FREQUENCY_COMPESATION_ENABLE", 277 "CONFIG_MMC", 278 "CONFIG_PRINTK", 279 "_PRE_FEATURE_NO_GPIO", 280 "_PRE_WLAN_FEATURE_HILINK", 281 "_PRE_WLAN_FEATURE_SMARTCONFIG_APP", 282 "_PRE_WLAN_FEATURE_TEMP_PROTECT", 283 "_PRE_WLAN_FEATURE_SINGLE_DEVICE", 284 "_PRE_FEATURE_SDIO=1", 285 "_PRE_FEATURE_USB=2", 286 "_PRE_FEATURE_CHANNEL_TYPE=_PRE_FEATURE_SDIO", 287 "CONFIG_HI110X_SDIO_STD_CARD_SUPPORT", 288 ] 289 if (CFG_LITEOS) { 290 defines += [ "_PRE_OS_VERSION = _PRE_OS_VERSION_LITEOS" ] 291 } else { 292 defines += [ "_PRE_OS_VERSION = _PRE_OS_VERSION_LINUX" ] 293 } 294 if (LOSCFG_COMPILER_HI3861_FLASH) { 295 defines += [ "_PRE_MULTI_CORE_MODE=_PRE_MULTI_CORE_MODE_SMP" ] 296 } else { 297 defines += [ "_PRE_MULTI_CORE_MODE=_PRE_MULTI_CORE_MODE_OFFLOAD_DMAC" ] 298 } 299 if (LOSCFG_COMPILER_HI3861_ASIC) { 300 defines += [ "_PRE_WLAN_CHIP_VERSION=_HI_BOARD_ASIC" ] 301 } else { 302 defines += [ "_PRE_WLAN_CHIP_VERSION=_HI_BOARD_FPGA" ] 303 } 304 if (defined(QUICK_START)) { 305 defines += [ "_PRE_WLAN_FEATURE_QUICK_START" ] 306 } 307 if (defined(NO_32K)) { 308 defines += [ "_PRE_WLAN_FEATURE_NO_32K" ] 309 } 310 if (defined(BOARD_FUNC)) { 311 defines += [ "_PRE_WLAN_FPGA_DIGITAL" ] 312 } 313 if (CFG_SCHEDULE) { 314 defines += [ "_PRE_WLAN_FEATURE_SCHEDULE" ] 315 } 316 if (CFG_TPC) { 317 defines += [ "_PRE_WLAN_FEATURE_TPC" ] 318 } 319 if (CFG_DBAC) { 320 defines += [ "_PRE_WLAN_FEATURE_DBAC" ] 321 } 322 if (CFG_CCA_OPT) { 323 defines += [ "_PRE_WLAN_FEATURE_CCA_OPT" ] 324 } 325 if (CFG_EDCA_OPT) { 326 defines += [ "_PRE_WLAN_FEATURE_EDCA_OPT" ] 327 } 328 if (CFG_EDCA_OPT_AP) { 329 defines += [ "_PRE_WLAN_FEATURE_EDCA_OPT_AP" ] 330 } 331 if (CFG_ANTI_INTERF) { 332 defines += [ "_PRE_WLAN_FEATURE_ANTI_INTERF" ] 333 } 334 if (CFG_TRAFFIC_CTL) { 335 defines += [ "_PRE_WLAN_FEATURE_TRAFFIC_CTL" ] 336 } 337 if (CFG_ALG_CFG) { 338 defines += [ "_PRE_WLAN_FEATURE_ALG_CFG" ] 339 } 340 if (defined(CFG_ALG_INTRF_MODE)) { 341 defines += [ "_PRE_WLAN_FEATURE_INTRF_MODE" ] 342 } 343 if (CFG_TX_CLASSIFY_LAN_TO_WLAN) { 344 defines += [ "_PRE_WLAN_FEATURE_TX_CLASSIFY_LAN_TO_WLAN" ] 345 } 346 if (CFG_ARP_OFFLOAD) { 347 defines += [ "_PRE_WLAN_FEATURE_ARP_OFFLOAD" ] 348 } 349 if (CFG_DHCP_OFFLOAD) { 350 defines += [ "_PRE_WLAN_FEATURE_DHCP_OFFLOAD" ] 351 } 352 if (CFG_NEW_IQ) { 353 defines += [ "_PRE_WLAN_NEW_IQ" ] 354 } 355 if (CFG_P2P) { 356 defines += [ "_PRE_WLAN_FEATURE_P2P" ] 357 } 358 if (CFG_P2P_ROM) { 359 defines += [ "_PRE_WLAN_FEATURE_P2P_ROM" ] 360 } 361 if (CFG_ANY) { 362 defines += [ "_PRE_WLAN_FEATURE_ANY" ] 363 } 364 if (CFG_STA_PM) { 365 defines += [ "_PRE_WLAN_FEATURE_STA_PM" ] 366 } 367 if (CFG_MESH) { 368 defines += [ "_PRE_WLAN_FEATURE_MESH" ] 369 } 370 if (defined(CFG_BTCOEX)) { 371 defines += [ "_PRE_WLAN_FEATURE_BTCOEX" ] 372 } 373 if (CFG_BTCOEX_ROM) { 374 defines += [ "_PRE_WLAN_FEATURE_BTCOEX_ROM" ] 375 } 376 if (CFG_RF_110X_CALI_DPD) { 377 defines += [ "_PRE_WLAN_RF_110X_CALI_DPD" ] 378 } 379 if (CFG_RF_1102CALI) { 380 defines += [ "_PRE_WLAN_RF_1102CALI" ] 381 } 382 if (CFG_UAPSD) { 383 defines += [ "_PRE_WLAN_FEATURE_UAPSD" ] 384 } 385 if (CFG_WAPI) { 386 defines += [ "_PRE_WLAN_FEATURE_WAPI" ] 387 } 388 if (CFG_WAPI_ROM) { 389 defines += [ "_PRE_WLAN_FEATURE_WAPI_ROM" ] 390 } 391 if (CFG_TCP_OPT) { 392 defines += [ "_PRE_WLAN_TCP_OPT" ] 393 } 394 if (CFG_REKEY_OFFLOAD) { 395 defines += [ "_PRE_WLAN_FEATURE_REKEY_OFFLOAD" ] 396 } 397 if (CFG_REKEY_OFFLOAD_ROM) { 398 defines += [ "_PRE_WLAN_FEATURE_REKEY_OFFLOAD_ROM" ] 399 } 400 if (CFG_WOW) { 401 defines += [ "_PRE_WLAN_FEATURE_WOW" ] 402 } 403 if (CFG_WOW_ROM) { 404 defines += [ "_PRE_WLAN_FEATURE_WOW_ROM" ] 405 } 406 if (CFG_PROMIS) { 407 defines += [ "_PRE_WLAN_FEATURE_PROMIS" ] 408 } 409 if (CFG_PROMIS_ROM) { 410 defines += [ "_PRE_WLAN_FEATURE_PROMIS_ROM" ] 411 } 412 if (CFG_SIGMA) { 413 defines += [ "_PRE_WLAN_FEATURE_SIGMA" ] 414 } 415 if (CFG_MFG_TEST) { 416 defines += [ "_PRE_WLAN_FEATURE_MFG_TEST" ] 417 } 418 if (CFG_MFG_FW) { 419 defines += [ "_PRE_WLAN_FEATURE_MFG_FW" ] 420 } 421 if (CFG_CE_MODE) { 422 defines += [ "_PRE_CE_INITIAL_PARAMS_MODE" ] 423 } 424 if (CFG_FCC_MODE) { 425 defines += [ "_PRE_FCC_INITIAL_PARAMS_MODE" ] 426 } 427 if (CFG_HIPRIV) { 428 defines += [ "_PRE_WLAN_FEATURE_HIPRIV" ] 429 if (CFG_LITEOS) { 430 defines += [ "AT_DEBUG_CMD_SUPPORT" ] 431 } else { 432 defines += [ "_PRE_CONFIG_CONN_HISI_SYSFS_SUPPORT" ] 433 } 434 } 435 if (CFG_HCC_TASK) { 436 defines += [ "_PRE_FEATURE_HCC_TASK" ] 437 } 438 if (defined(LOSCFG_PLATFORM_HI3516EV300)) { 439 defines += [ "HISI_WIFI_PLATFORM_HI3516EV300" ] 440 } 441} 442