linuxOS_D21X/source/linux-5.10/drivers/net/wireless/asr/Makefile
2024-11-29 16:23:11 +08:00

419 lines
12 KiB
Makefile

#select your borad option ,such as lega,duet,canon,alto,bass
#you need change some args in xxx_defconfig,this Makefile as comon for all boards
### this only for ubuntu pc compile 5531 usb ko
ifeq ($(TARGET),canon_usb)
CONFIG_ASR5531 := m
CONFIG_PLATFORM_I386_PC := y
CONFIG_PLATFORM_RASPI_AARCH64 := n
CONFIG_NOT_USED_DTS := y
CONFIG_ASR_SDIO := n
CONFIG_ASR_USB := y
endif
###################### 5531(canon) #######################
ifeq ($(CONFIG_ASR5531), m)
CONFIG_BOARD=canon
# as module(m) or as built-in(y)
subdir-ccflags-y += -DCONFIG_ASR5531
ifeq ($(CONFIG_ASR_SDIO), y)
subdir-ccflags-y += -DASR_UART_DOWNLOAD_ROMCODE
MODULE_NAME ?= asr5532s
else
MODULE_NAME ?= asr5532u
endif
obj-$(CONFIG_ASR5531) := $(MODULE_NAME).o
ccflags-y += -DASR_WIFI_CONFIG_SUPPORT
#support roaming for rrm,btm
subdir-ccflags-y += -DCFG_ROAMING
###################### 5505(lega) #######################
else ifneq ($(CONFIG_ASR5505), n)
CONFIG_BOARD=lega
MODULE_NAME ?= asr5505
obj-$(CONFIG_ASR5505) := $(MODULE_NAME).o
subdir-ccflags-y += -DCONFIG_ASR5505
###################### 5825(duet) #######################
else ifeq ($(CONFIG_ASR5825), m)
CONFIG_BOARD=duet
# extra DEBUG config for key debug log
CONFIG_ASR_KEY_DBG := y
# as module(m) or as built-in(y)
MODULE_NAME ?= asr5825
obj-$(CONFIG_ASR5825) := $(MODULE_NAME).o
subdir-ccflags-y += -DCONFIG_ASR5825
# out-of-band interrupt.
#subdir-ccflags-y += -DOOB_INTR_ONLY
###################### 595X(alto) #######################
else ifeq ($(CONFIG_ASR595X), m)
CONFIG_BOARD=alto
# extra DEBUG config for key debug log
#CONFIG_ASR_KEY_DBG := y
# as module(m) or as built-in(y)
MODULE_NAME ?= asr595x
obj-$(CONFIG_ASR595X) := $(MODULE_NAME).o
subdir-ccflags-y += -DCONFIG_ASR595X -DCONFIG_TWT -DP2P_SUPPORT -DCONFIG_ASR_P2P_DEBUGFS -DSDIO_RXBUF_SPLIT
#subdir-ccflags-y += -DCONFIG_ASR595X -DCONFIG_TWT
subdir-ccflags-y += -DCFG_ROAMING
###################### 596X(bass) #######################
else ifeq ($(CONFIG_ASR596X), m)
CONFIG_BOARD=bass
CONFIG_ASR595X := m
# extra DEBUG config for key debug log
#CONFIG_ASR_KEY_DBG := y
# as module(m) or as built-in(y)
MODULE_NAME ?= asr596x
obj-$(CONFIG_ASR595X) := $(MODULE_NAME).o
subdir-ccflags-y += -DCONFIG_ASR596X -DCONFIG_TWT
#need set ASR595X MACRO to compile
subdir-ccflags-y += -DCONFIG_ASR595X
subdir-ccflags-y += -DBASS_SUPPORT
else
CONFIG_BOARD=unknow
endif
CONFIG_ABSPATH=$(abspath $(patsubst %/,%,$(dir $(abspath $(lastword $(MAKEFILE_LIST))))))
EXTRA_CFLAGS += -I$(srctree)/$(src)/drv_code/include
ARCH ?= arm
PWD := $(shell pwd)
BUILD_DIR = $(PWD)/out/tmp
SRC = $(PWD)
BUILD_DIR_MAKEFILE = $(BUILD_DIR)/Makefile
#include $(CONFIG_ABSPATH)/$(CONFIG_BOARD)_defconfig.mk
# without bootroom debug,not download firmware
CONFIG_ASR_NO_BOOTROOM ?= n
CONFIG_ASRSDIO_LOOPBACK ?= n
###################### use dts or not #######################
#use CONFIG_NOT_USED_DTS to test whether need dts to compile
ifeq ($(CONFIG_ASR_USB), y)
CONFIG_ASR_SDIO := n
else ifeq ($(CONFIG_ASR_SDIO), y)
subdir-ccflags-y += -DSDIO_DEAGGR
CONFIG_ASR_USB := n
else
CONFIG_ASR_USB ?= n
CONFIG_ASR_SDIO ?= n
endif
###############################################################
#out-of-order pkt handle.
subdir-ccflags-y += -DCFG_OOO_UPLOAD
CONFIG_NOT_USED_DTS ?= n
CONFIG_ASR_USB ?= n
CONFIG_ASR_SDIO ?= n
CONFIG_ASR5531 ?= n
CONFIG_ASR5505 ?= n
CONFIG_ASR5825 ?= n
CONFIG_ASR595X ?= n
CONFIG_DEBUG_FS := y
CONFIG_ASR_DBG := y
CONFIG_DYNAMIC_DEBUG=y
#CONFIG_WIRELESS_EXT=y
#CONFIG_WEXT_PRIV=y
###################### build info #######################
export BUILD_MACHINE_INFO ?=$(shell whoami)@$(shell hostname)
export BUILD_DATE_INFO ?=$(shell date +"%Y%m%d")
###################### used for debug #######################
#CONFIG_OLD_USB := y
#CONFIG_FW_HAVE_NOT_MM_INFO_MSG := y
ASR_DRV_DEBUG_TIMER := n
###################### Platform Related #######################
CONFIG_PLATFORM_ARM_RPI := n
CONFIG_PLATFORM_ARM_AARCH64 := n
CONFIG_PLATFORM_I386_PC ?= n
CONFIG_PLATFORM_FULLHAN_ARM := n
CONFIG_PLATFORM_HI3516_ARM := n
CONFIG_PLATFORM_RASPI_AARCH64 ?= n
##################### Optimization Flags ##########################
#EXTRA_CFLAGS += -O2
##################### Compile-time Warnings #######################
#EXTRA_CFLAGS += -Wno-unused-variable
#EXTRA_CFLAGS += -Wno-unused-label
#EXTRA_CFLAGS += -Wno-unused-function
# Power Save
CONFIG_POWER_SAVE ?= n
# as module(m) or as built-in(y)
MODULE_NAME ?= asrunknown
ccflags-y += -DASR_WIFI_CONFIG_SUPPORT
CONFIG_ASR_SAE = y
# Enable drv_sme
CONFIG_SME = y
# Enable drv_sme
CONFIG_SAE = y
ifeq ($(CONFIG_ASRSDIO_LOOPBACK), y)
MODULE_SDIO_LOOPBACK_NAME ?= asrsdiodrv
obj-$(CONFIG_ASRSDIO_LOOPBACK) += $(MODULE_SDIO_LOOPBACK_NAME).o
subdir-ccflags-y += -DCONFIG_ASR_SDIO_LOOPBACK
$(MODULE_SDIO_LOOPBACK_NAME)-y := drv_code/asr_sdio_loopback_test.o
endif
#==========HOST PLATFORM PARAM==========
ifeq ($(CONFIG_MACH_PXA1826_DT), y)
ccflags-y += -DASR_MACH_PXA1826_CLK_EN
ccflags-y += -DASR_MODULE_POWER_PIN_SUPPORT
ccflags-y += -DASR_HEARTBEAT_DETECT
#support custor wifi config function
#ccflags-y += -DASR_WIFI_CONFIG_SUPPORT
ccflags-y += -DASR_SDIO_HOST_SDHCI
#support reset wifi module function
ccflags-y += -DASR_MODULE_RESET_SUPPORT
endif
ifeq ($(CONFIG_MACH_FINCH), y)
ccflags-y += -DASR_FINCH_MODULE_POWER_SUPPORT
ccflags-y += -DLOAD_MAC_ADDR_FROM_NODE
#ccflags-y += -DASR_SDIO_ISR_DATAWORKER
ccflags-y += -DASR_HEARTBEAT_DETECT
ccflags-y += -DASR_SDIO_HOST_SDHCI
#support reset wifi module function
ccflags-y += -DASR_MODULE_RESET_SUPPORT
ifdef CONFIG_ASR5825
CONFIG_MODULE_AL5825_DB = y
endif
endif
ifeq ($(CONFIG_MACH_FH8632), y)
ccflags-y += -DLOAD_MAC_ADDR_FROM_FW
#support custor wifi config function
#ccflags-y += -DASR_WIFI_CONFIG_SUPPORT
CONFIG_DEBUG_FS := n
CONFIG_ASR_DBG := n
CONFIG_DYNAMIC_DEBUG=n
CONFIG_ASR_SAE = n
# Enable drv_sme
CONFIG_SME = n
# Enable drv_sme
CONFIG_SAE = n
endif
#=======================================
#==========CLIENT WIFI MODULE PARAM==========
ifdef CONFIG_MODULE_AL5825_DB
ccflags-y += -DASR_BOOT_TO_RTS_PIN_SUPPORT
endif
#=======================================
# FW VARS
ifeq ($(CONFIG_ASR595X), m)
subdir-ccflags-y += -DNX_VIRT_DEV_MAX=4
else
subdir-ccflags-y += -DNX_VIRT_DEV_MAX=2
endif
subdir-ccflags-y += -DNX_REMOTE_STA_MAX=16
subdir-ccflags-y += -DNX_CHAN_CTXT_CNT=3
###################### build info #######################
subdir-ccflags-y += -DCFG_BUILD_MACHINE=$(BUILD_MACHINE_INFO)
subdir-ccflags-y += -DCFG_BUILD_DATE=$(BUILD_DATE_INFO)
# Enable A-MSDU support (need FW support)
## Select this if FW is compiled with AMSDU support
CONFIG_ASR_SPLIT_TX_BUF ?= n
## Select this TO send AMSDU
CONFIG_ASR_AMSDUS_TX ?= n
# Enable HW queue for Broadcast/Multicast traffic (need FW support)
CONFIG_ASR_BCMC ?= y
# extra DEBUG config for function entry
#CONFIG_ASR_DBG ?= n
# extra DEBUG config for key debug log
#CONFIG_ASR_KEY_DBG ?= y
# extra DEBUG config for key debug log
CONFIG_ASR_SNIFFER_SUPPORT ?= y
# Enable 8k rx amsdu
CONFIG_ASR_AMSDU_RX_8K ?= n
# use SDIO interface
#CONFIG_ASR_SDIO ?=n
# use USB interface
#CONFIG_ASR_USB ?=y
#reduce tcp ack frequence
ccflags-y += -DASR_REDUCE_TCP_ACK
#support hidden ssid for ap mode
ccflags-y += -DCFG_AP_HIDDEN_SSID
$(MODULE_NAME)-y := drv_code/asr_msg_tx.o \
drv_code/asr_msg_rx.o \
drv_code/asr_utils.o \
drv_code/asr_cmds.o \
drv_code/asr_irqs.o \
drv_code/asr_ioctl.o \
drv_code/asr_cfgfile.o \
drv_code/asr_strs.o \
drv_code/asr_rx.o \
drv_code/asr_tx.o \
drv_code/asr_txq.o \
drv_code/asr_main.o \
drv_code/asr_mod_params.o \
drv_code/asr_platform.o \
drv_code/asr_target_platform.o \
drv_code/asr_ate.o \
drv_code/ipc_host.o
ccflags-y += -I$(src)/drv_code/include
ccflags-$(CONFIG_ASR_SPLIT_TX_BUF) += -DCONFIG_ASR_SPLIT_TX_BUF
ifeq ($(CONFIG_ASR_SDIO), y)
ccflags-$(CONFIG_ASR_SDIO) += -DCONFIG_ASR_SDIO
$(MODULE_NAME)-y += drv_code/asr_sdio.o
endif
ifeq ($(CONFIG_ASR_USB), y)
ccflags-$(CONFIG_ASR_USB) += -DCONFIG_ASR_USB
$(MODULE_NAME)-y += drv_code/asr_usb.o
endif
ifeq ($(CONFIG_OLD_USB), y)
ccflags-$(CONFIG_OLD_USB) += -DCONFIG_OLD_USB
endif
ifeq ($(CONFIG_DEBUG_FS), y)
subdir-ccflags-y += -DCONFIG_ASR_DEBUGFS
$(MODULE_NAME)-y += drv_code/asr_debugfs.o
endif
ifeq ($(CONFIG_ASR_SPLIT_TX_BUF), y)
ccflags-$(CONFIG_ASR_AMSDUS_TX) += -DCONFIG_ASR_AMSDUS_TX
endif
ifeq ($(CONFIG_ASR_SNIFFER_SUPPORT), y)
ccflags-$(CONFIG_ASR_SNIFFER_SUPPORT) += -DCFG_SNIFFER_SUPPORT
$(MODULE_NAME)-y += drv_code/asr_idle_mode.o
endif
ccflags-$(CONFIG_ASR_DBG) += -DCONFIG_ASR_DBG
ccflags-$(CONFIG_ASR_KEY_DBG) += -DCONFIG_ASR_KEY_DBG
ccflags-$(CONFIG_SME) += -DCONFIG_SME
ccflags-$(CONFIG_SAE) += -DCONFIG_SAE
ccflags-$(CONFIG_ASR_NO_BOOTROOM) += -DCONFIG_ASR_NO_BOOTROOM
ccflags-y += -DCONFIG_USER_MAX=1
ifeq ($(CONFIG_ASR_BCMC), y)
ccflags-y += -DNX_TXQ_CNT=5
else
ccflags-y += -DNX_TXQ_CNT=4
endif
ifeq ($(CONFIG_ASR_AMSDU_RX_8K), y)
ccflags-y += -DWLAN_AMSDU_RX_LEN=8192
else
#amsdu len 3960 = data 3839 + trans head 60 + hw info 34 reserve 27
ccflags-y += -DWLAN_AMSDU_RX_LEN=3960
endif
ifeq ($(ASR_DRV_DEBUG_TIMER), y)
ccflags-$(ASR_DRV_DEBUG_TIMER) += -DASR_DRV_DEBUG_TIMER
endif
ifeq ($(CONFIG_NOT_USED_DTS), y)
ccflags-$(CONFIG_NOT_USED_DTS) += -DCONFIG_NOT_USED_DTS
endif
ifeq ($(CONFIG_PLATFORM_I386_PC), y)
ccflags-$(CONFIG_PLATFORM_I386_PC) += -DCONFIG_PLATFORM_I386_PC -DCONFIG_APSTA_MIXED_SUPPORT -DCONFIG_WIRELESS_EXT -DCONFIG_WEXT_PRIV
endif
ifeq ($(CONFIG_FW_HAVE_NOT_MM_INFO_MSG), y)
ccflags-$(CONFIG_FW_HAVE_NOT_MM_INFO_MSG) += -DCONFIG_FW_HAVE_NOT_MM_INFO_MSG
endif
ifeq ($(CONFIG_ASR_SDIO), y)
#when enable bg scan for roaming, should not enable stats rates timer to block bg scan.
ccflags-y += -DASR_STATS_RATES_TIMER
endif
#build driver out of kernel dir
ifeq ($(KERNELRELEASE),)
ifeq ($(CONFIG_PLATFORM_I386_PC), y)
SUBARCH := $(shell uname -m | sed -e s/i.86/i386/)
ARCH := $(SUBARCH)
TOOLCHAIN_DIR ?=
KVER := $(shell uname -r)
KERNEL_DIR=/lib/modules/$(KVER)/build
MODDESTDIR := /lib/modules/$(KVER)/kernel/drivers/net/wireless/
STAGING_DIR := /lib/modules/$(KVER)/kernel/drivers/staging
else ifeq ($(CONFIG_PLATFORM_FULLHAN_ARM), y)
PREFIX=${PWD}/../../../..
KERNEL_DIR=${PREFIX}
STAGING_DIR=${PREFIX}
TOOLCHAIN_DIR=arm-fullhan-linux-uclibcgnueabi-
else ifeq ($(CONFIG_PLATFORM_HI3516_ARM), y)
PREFIX=${PWD}/../../../..
KERNEL_DIR=${PREFIX}/
STAGING_DIR=${PREFIX}
TOOLCHAIN_DIR=arm-himix200-linux-
else ifeq ($(CONFIG_PLATFORM_RASPI_AARCH64), y)
ARCH := arm64
PREFIX=${PWD}/../../../..
KERNEL_DIR=${PREFIX}/
STAGING_DIR=${PREFIX}
TOOLCHAIN_DIR=aarch64-linux-gnu-
else
# for 1826
PREFIX=${PWD}/../../../../../..
KERNEL_DIR=${PREFIX}/build_dir/toolchain-arm_cortex-a7+neon-vfpv4_gcc-4.8-linaro_uClibc-1.0.25_eabi/linux-3.10.33/
STAGING_DIR=${PREFIX}/staging_dir/target-arm_cortex-a7+neon-vfpv4_uClibc-1.0.25_eabi/root-mmp/lib/modules/3.10.33/
TOOLCHAIN_DIR=${PREFIX}/owtoolchain/linux64/bin/arm-openwrt-linux-
endif
ifeq ($(CONFIG_PLATFORM_I386_PC), y)
all: modules
else
all: modules drvcopy
endif
modules:$(BUILD_DIR_MAKEFILE)
echo $(BUILD_MACHINE_INFO) $(BUILD_DATE_INFO)
make V=s -j32 $(C_INCLUDE_PATH) -C $(KERNEL_DIR) STAGING_DIR=$(STAGING_DIR) \
ARCH=$(ARCH) \
CROSS_COMPILE=$(TOOLCHAIN_DIR) \
M=$(BUILD_DIR) src=$(SRC) \
modules
cp $(BUILD_DIR)/*.ko $(PWD)/out/
drvcopy:
cp $(BUILD_DIR)/*.ko $(STAGING_DIR)
$(BUILD_DIR_MAKEFILE):
mkdir -p $(PWD)/out/tmp/drv_code
touch $(BUILD_DIR)/Makefile
clean:
make V=s -j32 -C $(KERNEL_DIR) ARCH=$(ARCH) CROSS_COMPILE=$(TOOLCHAIN_DIR) M=$(BUILD_DIR) src=$(SRC) clean
rm -rf $(PWD)/out
rm -rf $(PWD)/drv_code/.*.cmd
rm -rf $(PWD)/drv_code/*.o
rm -rf $(PWD)/drv_code/*.ko
rm -rf $(PWD)/drv_code/*.mod
rm -rf $(PWD)/drv_code/*.mod.c
rm -rf $(PWD)/drv_code/.*.d
rm -rf $(PWD)/drv_code/built-in.a
rm -rf $(PWD)/drv_code/modules.order
endif