blob: d5fe460ba66037d57f4b78665685c079987e2fcc [file] [log] [blame]
# bcmdhd
# 1. WL_IFACE_COMB_NUM_CHANNELS must be added if Android version is 4.4 with Kernel version 3.0~3.4,
# otherwise please remove it.
ifneq ($(CONFIG_BCMDHD),)
PWD=$(src)
else
CONFIG_BCMDHD := m
CONFIG_BCMDHD_FW_PATH="/system/etc/firmware/fw_bcmdhd.bin"
CONFIG_BCMDHD_NVRAM_PATH="/system/etc/firmware/nvram.txt"
CONFIG_BCMDHD_SDIO := y
CONFIG_BCMDHD_OOB := y
endif
CONFIG_BCMDHD_DISABLE_WOWLAN := y
CONFIG_MACH_PLATFORM := y
$(warning "PWD=$(PWD)")
DHDCFLAGS = -Wall -Wstrict-prototypes -Dlinux -DBCMDRIVER \
-DBCMDONGLEHOST -DUNRELEASEDCHIP -DBCMDMA32 -DBCMFILEIMAGE \
-DDHDTHREAD -DDHD_DEBUG -DSHOW_EVENTS -DBCMDBG -DGET_OTP_MAC_ENABLE \
-DWIFI_ACT_FRAME -DARP_OFFLOAD_SUPPORT -DSUPPORT_PM2_ONLY \
-DPKT_FILTER_SUPPORT -DPNO_SUPPORT -DDHDTCPACK_SUPPRESS \
-DDHD_DONOT_FORWARD_BCMEVENT_AS_NETWORK_PKT \
-DMULTIPLE_SUPPLICANT -DMFP \
-DWL_EXT_IAPSTA -DKEEP_ALIVE \
-I$(PWD) -I$(PWD)/include
DHDOFILES = aiutils.o siutils.o sbutils.o bcmutils.o bcmwifi_channels.o \
dhd_linux.o dhd_linux_platdev.o dhd_linux_sched.o dhd_pno.o \
dhd_common.o dhd_ip.o dhd_linux_wq.o dhd_custom_gpio.o \
bcmevent.o hndpmu.o linux_osl.o wldev_common.o wl_android.o \
hnd_pktq.o hnd_pktpool.o dhd_config.o wl_android_ext.o
ifeq ($(CONFIG_BCMDHD),y)
DHDCFLAGS += -DDHD_BUILTIN
$(warning "Built-in DHD")
else
$(warning "Module DHD")
endif
DHDCFLAGS += -DBCOL_TCPKA_SYNC -DBCOL_TCPKA_SYNC_MATCHED_BY_PORT
DHDCFLAGS += -DTCPKA_REPAIR
DHDCFLAGS += -DPF_HOSTWAKE
DHDCFLAGS += -DDHCPC_SUPPORT
DHDCFLAGS += -DONLINECHK_SUPPORT
DHDCFLAGS += -DIDSUP_STATS -DSDIO_TRAITS_STATS
DHDCFLAGS += -DHAL_API -DPF_SETUP_COMMAND
DHDCFLAGS += -DEVENT_SETUP
DHDCFLAGS += -DDHD_SK_PACING_SHIFT=8
DHDCFLAGS += -DWNM_NEST
DHDCFLAGS += -DEVENT_DATA_HOSTWAKE -DHOSTWAKE_EVENT_TIMEOUT=5000
DHDCFLAGS += -DSCHED_WAKE
DHDCFLAGS += -DUART_HB_CONFIG
DHDCFLAGS += -DTCPKA_BYPASS
DHDCFLAGS += -DRESUME_INIT
DHDCFLAGS += -DDHD_WAKE_STATUS -DDHD_WAKE_EVENT_STATUS -DDHD_WAKE_RX_STATUS
#DHDCFLAGS += -DDHD_WAKEPKT_DUMP
DHDCFLAGS += -DTXSEQ_SYNC
DHDCFLAGS += -DDHD_CONSOLE_IDX_SYNC
DHDCFLAGS += -DCUSTOM_ASSOC_RETRY_MAX=10
DHDCFLAGS += -DASSOC_PREFER_BAND
DHDCFLAGS += -DWIFI_STATS
DHDCFLAGS += -DSIMPLE_MAC_PRINT
DHDCFLAGS += -DPSPOLL_WAIT -DPSPOLL_KA_WAIT -DPM_KEEP_ALIVE
DHDCFLAGS += -DGARP_KEEP_ALIVE
DHDCFLAGS += -DBLOCK_LIST_CFG -DRELOAD_WIFI
DHDCFLAGS += -DNOTI_BITBANG
#BCMDHD_SDIO
ifneq ($(CONFIG_BCMDHD_SDIO),)
DHDCFLAGS += \
-DBCMSDIO -DMMC_SDIO_ABORT -DBCMLXSDMMC -DUSE_SDIOFIFO_IOVAR \
-DSDTEST -DBDC -DDHD_USE_IDLECOUNT -DCUSTOM_SDIO_F2_BLKSIZE=128 \
-DBCMSDIOH_TXGLOM -DBCMSDIOH_TXGLOM_EXT
DHDCFLAGS += -DRXFRAME_THREAD
ifeq ($(CONFIG_HISILICON_PLATFORM),y)
DHDCFLAGS += -DSDIO_ISR_THREAD
else
ifeq ($(CONFIG_BCMDHD_OOB),y)
DHDCFLAGS += -DOOB_INTR_ONLY -DCUSTOMER_OOB -DHW_OOB
ifeq ($(CONFIG_BCMDHD_DISABLE_WOWLAN),y)
DHDCFLAGS += -DDISABLE_WOWLAN
endif
else
DHDCFLAGS += -DSDIO_ISR_THREAD
endif
endif
DHDOFILES += bcmsdh.o bcmsdh_linux.o bcmsdh_sdmmc.o bcmsdh_sdmmc_linux.o \
dhd_sdio.o dhd_cdc.o dhd_wlfc.o
endif
#BCMDHD_PCIE
ifneq ($(CONFIG_BCMDHD_PCIE),)
DHDCFLAGS += -DPCIE_FULL_DONGLE -DBCMPCIE -DCUSTOM_DPC_PRIO_SETTING=-1 \
-DDONGLE_ENABLE_ISOLATION
ifneq ($(CONFIG_PCI_MSI),)
DHDCFLAGS += -DDHD_USE_MSI
endif
ifeq ($(CONFIG_DHD_USE_STATIC_BUF),y)
DHDCFLAGS += -DDHD_USE_STATIC_CTRLBUF
endif
DHDOFILES += dhd_pcie.o dhd_pcie_linux.o pcie_core.o dhd_flowring.o \
dhd_msgbuf.o
endif
#BCMDHD_USB
ifneq ($(CONFIG_BCMDHD_USB),)
DHDCFLAGS += -DUSBOS_TX_THREAD -DBCMDBUS -DBCMTRXV2 -DDBUS_USB_LOOPBACK \
-DBDC
DHDCFLAGS += -DBCM_REQUEST_FW -DEXTERNAL_FW_PATH
#DHDCFLAGS :=$(filter-out -DENABLE_INSMOD_NO_FW_LOAD,$(DHDCFLAGS))
DHDOFILES += dbus.o dbus_usb.o dbus_usb_linux.o dhd_cdc.o dhd_wlfc.o
endif
ifeq ($(CONFIG_BCMDHD_PROPTXSTATUS),y)
ifneq ($(CONFIG_BCMDHD_USB),)
DHDCFLAGS += -DPROP_TXSTATUS
endif
ifneq ($(CONFIG_BCMDHD_SDIO),)
DHDCFLAGS += -DPROP_TXSTATUS
endif
ifneq ($(CONFIG_CFG80211),)
DHDCFLAGS += -DPROP_TXSTATUS_VSDB
endif
endif
ifeq ($(CONFIG_VTS_SUPPORT),y)
ifneq ($(CONFIG_CFG80211),)
DHDCFLAGS += \
-DGSCAN_SUPPORT -DRTT_SUPPORT -DCUSTOM_FORCE_NODFS_FLAG \
-DLINKSTAT_SUPPORT -DDEBUGABILITY -DDBG_PKT_MON -DPKT_FILTER_SUPPORT \
-DAPF -DDHD_WAKE_STATUS \
-DCUSTOM_COUNTRY_CODE -DDHD_FW_COREDUMP -DEXPLICIT_DISCIF_CLEANUP
DHDOFILES += dhd_debug_linux.o dhd_debug.o bcmxtlv.o dhd_rtt.o \
bcm_app_utils.o
endif
endif
# MESH support for kernel 3.10 later
ifeq ($(CONFIG_WL_MESH),y)
DHDCFLAGS += -DWLMESH
ifneq ($(CONFIG_BCMDHD_PCIE),)
DHDCFLAGS += -DBCM_HOST_BUF -DDMA_HOST_BUFFER_LEN=0x80000
endif
DHDCFLAGS += -DDHD_UPDATE_INTF_MAC
DHDCFLAGS :=$(filter-out -DDHD_FW_COREDUMP,$(DHDCFLAGS))
DHDCFLAGS :=$(filter-out -DSET_RANDOM_MAC_SOFTAP,$(DHDCFLAGS))
endif
obj-$(CONFIG_BCMDHD) += dhd.o
dhd-objs += $(DHDOFILES)
ifeq ($(CONFIG_MACH_PLATFORM),y)
DHDOFILES += dhd_gpio.o
ifeq ($(CONFIG_BCMDHD_DTS),y)
DHDCFLAGS += -DCONFIG_DTS
else
DHDCFLAGS += -DCUSTOMER_HW -DDHD_OF_SUPPORT
endif
else
ifneq ($(CONFIG_DHD_OF_SUPPORT),)
DHDOFILES += dhd_custom_hikey.o
DHDCFLAGS += -DDHD_OF_SUPPORT
ifneq ($(CONFIG_BROADCOM_WIFI_RESERVED_MEM),)
DHDOFILES += dhd_custom_memprealloc.o
endif
endif
# DHDCFLAGS += -DBCMWAPI_WPI -DBCMWAPI_WAI
endif
ifeq ($(CONFIG_BCMDHD_AG),y)
DHDCFLAGS += -DBAND_AG
endif
ifeq ($(CONFIG_DHD_USE_STATIC_BUF),y)
obj-m += dhd_static_buf.o
DHDCFLAGS += -DSTATIC_WL_PRIV_STRUCT -DENHANCED_STATIC_BUF
DHDCFLAGS += -DDHD_USE_STATIC_MEMDUMP -DCONFIG_DHD_USE_STATIC_BUF
endif
ifneq ($(CONFIG_WIRELESS_EXT),)
DHDOFILES += wl_iw.o wl_escan.o
DHDCFLAGS += -DSOFTAP -DWL_WIRELESS_EXT -DUSE_IW -DWL_ESCAN
endif
ifneq ($(CONFIG_CFG80211),)
DHDOFILES += wl_cfg80211.o wl_cfgp2p.o wl_linux_mon.o wl_cfg_btcoex.o wl_cfgvendor.o
DHDOFILES += dhd_cfg80211.o
DHDCFLAGS += -DWL_CFG80211 -DWLP2P -DWL_CFG80211_STA_EVENT -DWL_ENABLE_P2P_IF
DHDCFLAGS += -DWL_IFACE_COMB_NUM_CHANNELS
DHDCFLAGS += -DCUSTOM_ROAM_TRIGGER_SETTING=-65
DHDCFLAGS += -DCUSTOM_ROAM_DELTA_SETTING=15
DHDCFLAGS += -DCUSTOM_KEEP_ALIVE_SETTING=28000
DHDCFLAGS += -DCUSTOM_PNO_EVENT_LOCK_xTIME=7
DHDCFLAGS += -DWL_SUPPORT_AUTO_CHANNEL
DHDCFLAGS += -DWL_SUPPORT_BACKPORTED_KPATCHES
DHDCFLAGS += -DESCAN_RESULT_PATCH -DESCAN_BUF_OVERFLOW_MGMT
DHDCFLAGS += -DVSDB -DWL_CFG80211_VSDB_PRIORITIZE_SCAN_REQUEST
DHDCFLAGS += -DMIRACAST_AMPDU_SIZE=8
DHDCFLAGS += -DWL_VIRTUAL_APSTA -DWL_CCODE_RELOAD
endif
EXTRA_CFLAGS = $(DHDCFLAGS)
ifeq ($(CONFIG_BCMDHD),m)
EXTRA_LDFLAGS += --strip-debug
endif
DHDCFLAGS += -DCUSTOMER_HW_AMLOGIC
DHDCFLAGS += -DCONFIG_PATH_AUTO_SELECT
DHDCFLAGS += -DRMMOD_KEEP_F2 -DPOWERUP_MAX_RETRY=0 -DEXT_POWER_SET
ARCH ?= arm64
CROSS_COMPILE ?= ../prebuilt/toolchain/aarch64/bin/aarch64-cros-linux-gnu-
KDIR ?= ../../kernel
CFLAGS_MODULE = -fno-pic
EXTRA_CFLAGS = $(DHDCFLAGS) -Wframe-larger-than=1312
all:
$(warning "DHDFLAGS=$(DHDCFLAGS)")
$(MAKE) -C $(KDIR) M=$(PWD) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) modules
clean:
$(MAKE) -C $(KDIR) M=$(PWD) ARCH=$(ARCH) clean
rm -fr *.mod.c *.mod *.o .*.cmd *.ko *~
rm .tmp_versions -fr ; rm Module.symvers -fr
rm -fr Module.markers ; rm -fr modules.order