419 lines
12 KiB
Makefile
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
|