xref: /OK3568_Linux_fs/kernel/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/Makefile (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1# SPDX-License-Identifier: GPL-2.0
2# bcmdhd
3
4MODULE_NAME := bcmdhd
5CONFIG_BCMDHD ?= m
6
7#CONFIG_BCMDHD_SDIO := y
8#CONFIG_BCMDHD_PCIE := y
9#CONFIG_BCMDHD_USB := y
10
11CONFIG_BCMDHD_OOB := y
12#CONFIG_BCMDHD_CUSB := y
13#CONFIG_BCMDHD_NO_POWER_OFF := y
14CONFIG_BCMDHD_PROPTXSTATUS := y
15CONFIG_BCMDHD_AG := y
16CONFIG_DHD_USE_STATIC_BUF := y
17#CONFIG_BCMDHD_STATIC_BUF_IN_DHD := y
18CONFIG_BCMDHD_ANDROID_VERSION := 12
19CONFIG_BCMDHD_AUTO_SELECT := y
20CONFIG_BCMDHD_DEBUG := y
21#CONFIG_BCMDHD_TIMESTAMP := y
22#CONFIG_BCMDHD_WAPI := y
23#CONFIG_BCMDHD_RANDOM_MAC := y
24CONFIG_BCMDHD_REQUEST_FW := y
25#CONFIG_BCMDHD_MULTIPLE_DRIVER := y
26#CONFIG_BCMDHD_DWDS := y
27CONFIG_BCMDHD_TPUT := y
28
29CONFIG_MACH_PLATFORM := y
30#CONFIG_BCMDHD_DTS := y
31
32DHDCFLAGS = -Wall -Wstrict-prototypes -Wno-date-time                      \
33	-Wno-implicit-fallthrough -Wno-declaration-after-statement            \
34	-Wno-vla -Wno-vla-extension                                           \
35	-Dlinux -DLINUX -DBCMDRIVER                                           \
36	-DBCMDONGLEHOST -DBCMDMA32 -DBCMFILEIMAGE                             \
37	-DDHDTHREAD -DDHD_DEBUG -DSHOW_EVENTS -DGET_OTP_MAC_ENABLE            \
38	-DWIFI_ACT_FRAME -DARP_OFFLOAD_SUPPORT -DSUPPORT_PM2_ONLY             \
39	-DKEEP_ALIVE -DPKT_FILTER_SUPPORT -DDHDTCPACK_SUPPRESS                \
40	-DDHD_DONOT_FORWARD_BCMEVENT_AS_NETWORK_PKT -DOEM_ANDROID             \
41	-DMULTIPLE_SUPPLICANT -DTSQ_MULTIPLIER -DMFP -DDHD_8021X_DUMP         \
42	-DPOWERUP_MAX_RETRY=0 -DIFACE_HANG_FORCE_DEV_CLOSE -DWAIT_DEQUEUE     \
43	-DUSE_NEW_RSPEC_DEFS -DBCM_USE_PLATFORM_STRLCPY                       \
44	-DWL_EXT_IAPSTA -DWL_ESCAN -DCCODE_LIST -DSUSPEND_EVENT               \
45	-DEAPOL_RESEND -DEAPOL_DYNAMATIC_RESEND -DWL_SCHED_SCAN               \
46	-DENABLE_INSMOD_NO_FW_LOAD -Wframe-larger-than=2048                   \
47	-DSCHED_SCAN_DELAYED_WORK -DDHD_PNO_FLAG
48
49DHDOFILES = aiutils.o siutils.o sbutils.o bcmutils.o bcmwifi_channels.o   \
50	dhd_linux.o dhd_linux_platdev.o dhd_linux_sched.o dhd_pno.o           \
51	dhd_common.o dhd_ip.o dhd_linux_wq.o dhd_custom_gpio.o                \
52	bcmevent.o hndpmu.o linux_osl.o wldev_common.o wl_android.o           \
53	dhd_debug_linux.o dhd_debug.o dhd_mschdbg.o dhd_dbg_ring.o            \
54	hnd_pktq.o hnd_pktpool.o bcmxtlv.o linux_pkt.o bcmstdlib_s.o frag.o   \
55	dhd_linux_exportfs.o dhd_linux_pktdump.o dhd_mschdbg.o                \
56	dhd_config.o dhd_ccode.o wl_event.o wl_android_ext.o                  \
57	wl_iapsta.o wl_escan.o
58
59ifneq ($(CONFIG_WIRELESS_EXT),)
60	DHDOFILES += wl_iw.o
61	DHDCFLAGS += -DSOFTAP -DWL_WIRELESS_EXT -DUSE_IW
62endif
63ifneq ($(CONFIG_CFG80211),)
64	DHDOFILES += wl_cfg80211.o wl_cfgscan.o wl_cfgp2p.o
65	DHDOFILES += wl_linux_mon.o wl_cfg_btcoex.o wl_cfgvendor.o
66	DHDOFILES += dhd_cfg80211.o wl_cfgvif.o
67	DHDCFLAGS += -DWL_CFG80211 -DWLP2P -DWL_CFG80211_STA_EVENT
68#	DHDCFLAGS += -DWL_IFACE_COMB_NUM_CHANNELS
69	DHDCFLAGS += -DCUSTOM_PNO_EVENT_LOCK_xTIME=10
70	DHDCFLAGS += -DWL_SUPPORT_AUTO_CHANNEL
71	DHDCFLAGS += -DWL_SUPPORT_BACKPORTED_KPATCHES
72	DHDCFLAGS += -DESCAN_RESULT_PATCH -DESCAN_BUF_OVERFLOW_MGMT
73	DHDCFLAGS += -DVSDB -DWL_CFG80211_VSDB_PRIORITIZE_SCAN_REQUEST
74	DHDCFLAGS += -DWLTDLS -DMIRACAST_AMPDU_SIZE=8
75	DHDCFLAGS += -DWL_VIRTUAL_APSTA
76	DHDCFLAGS += -DPNO_SUPPORT -DEXPLICIT_DISCIF_CLEANUP
77	DHDCFLAGS += -DDHD_USE_SCAN_WAKELOCK
78	DHDCFLAGS += -DSPECIFIC_MAC_GEN_SCHEME
79	DHDCFLAGS += -DWL_IFACE_MGMT
80	DHDCFLAGS += -DWLFBT -DWL_GCMP_SUPPORT
81	DHDCFLAGS += -DWL_EXT_RECONNECT
82	DHDCFLAGS += -DDHD_LOSSLESS_ROAMING
83	DHDCFLAGS += -DGTK_OFFLOAD_SUPPORT
84	DHDCFLAGS += -DRESTART_AP_WAR
85#	DHDCFLAGS += -DWL_STATIC_IF
86	DHDCFLAGS += -DWL_CLIENT_SAE -DWL_OWE
87endif
88
89#BCMDHD_SDIO
90ifneq ($(CONFIG_BCMDHD_SDIO),)
91BUS_TYPE := "sdio"
92DHDCFLAGS += -DBCMSDIO -DMMC_SDIO_ABORT -DMMC_SW_RESET -DBCMLXSDMMC       \
93	-DUSE_SDIOFIFO_IOVAR -DSDTEST                                         \
94	-DBDC -DDHD_USE_IDLECOUNT -DCUSTOM_SDIO_F2_BLKSIZE=256                \
95	-DBCMSDIOH_TXGLOM -DBCMSDIOH_TXGLOM_EXT -DRXFRAME_THREAD              \
96	-DDHDENABLE_TAILPAD -DSUPPORT_P2P_GO_PS                               \
97	-DBCMSDIO_RXLIM_POST -DBCMSDIO_TXSEQ_SYNC -DCONSOLE_DPC               \
98	-DBCMSDIO_INTSTATUS_WAR
99ifeq ($(CONFIG_BCMDHD_OOB),y)
100	DHDCFLAGS += -DOOB_INTR_ONLY -DCUSTOMER_OOB -DHW_OOB
101ifeq ($(CONFIG_BCMDHD_DISABLE_WOWLAN),y)
102	DHDCFLAGS += -DDISABLE_WOWLAN
103endif
104else
105	DHDCFLAGS += -DSDIO_ISR_THREAD
106endif
107DHDOFILES += bcmsdh.o bcmsdh_linux.o bcmsdh_sdmmc.o bcmsdh_sdmmc_linux.o  \
108	dhd_sdio.o dhd_cdc.o dhd_wlfc.o
109endif
110
111#BCMDHD_PCIE
112ifneq ($(CONFIG_BCMDHD_PCIE),)
113BUS_TYPE := "pcie"
114DHDCFLAGS += -DPCIE_FULL_DONGLE -DBCMPCIE -DCUSTOM_DPC_PRIO_SETTING=-1    \
115	-DDONGLE_ENABLE_ISOLATION
116DHDCFLAGS += -DDHD_LB -DDHD_LB_RXP -DDHD_LB_STATS -DDHD_LB_TXP
117#DHDCFLAGS += -DDHD_PKTID_AUDIT_ENABLED
118DHDCFLAGS += -DINSMOD_FW_LOAD
119DHDCFLAGS += -DCHIP_INTR_CONTROL
120#DHDCFLAGS += -DDHD_PCIE_RUNTIMEPM -DMAX_IDLE_COUNT=11 -DCUSTOM_DHD_RUNTIME_MS=100
121DHDCFLAGS += -DDHD_CONTROL_PCIE_ASPM_WIFI_TURNON
122ifeq ($(CONFIG_BCMDHD_OOB),y)
123	DHDCFLAGS += -DCUSTOMER_OOB -DBCMPCIE_OOB_HOST_WAKE -DHW_OOB
124endif
125ifneq ($(CONFIG_PCI_MSI),)
126	DHDCFLAGS += -DDHD_MSI_SUPPORT
127endif
128DHDOFILES += dhd_pcie.o dhd_pcie_linux.o pcie_core.o dhd_flowring.o       \
129	dhd_msgbuf.o dhd_linux_lb.o
130endif
131
132#BCMDHD_USB
133ifneq ($(CONFIG_BCMDHD_USB),)
134BUS_TYPE := "usb"
135DHDCFLAGS += -DUSBOS_TX_THREAD -DBCMDBUS -DBCMTRXV2 -DDBUS_USB_LOOPBACK   \
136	-DBDC
137DHDCFLAGS += -DBCM_REQUEST_FW -DEXTERNAL_FW_PATH
138ifneq ($(CONFIG_BCMDHD_CUSB),)
139	DHDCFLAGS += -DBCMUSBDEV_COMPOSITE
140	CONFIG_BCMDHD_NO_POWER_OFF := y
141endif
142DHDOFILES += dbus.o dbus_usb.o dbus_usb_linux.o dhd_cdc.o dhd_wlfc.o
143endif
144
145ifeq ($(CONFIG_BCMDHD_NO_POWER_OFF),y)
146	DHDCFLAGS += -DENABLE_INSMOD_NO_FW_LOAD
147	DHDCFLAGS += -DENABLE_INSMOD_NO_POWER_OFF -DNO_POWER_OFF_AFTER_OPEN
148endif
149
150ifeq ($(CONFIG_BCMDHD_MULTIPLE_DRIVER),y)
151	DHDCFLAGS += -DBCMDHD_MDRIVER
152	DHDCFLAGS += -DBUS_TYPE=\"-$(BUS_TYPE)\"
153	DHDCFLAGS += -DDHD_LOG_PREFIX=\"[dhd-$(BUS_TYPE)]\"
154	MODULE_NAME := dhd$(BUS_TYPE)
155else
156	DHDCFLAGS += -DBUS_TYPE=\"\"
157endif
158
159ifeq ($(CONFIG_BCMDHD_TIMESTAMP),y)
160	DHDCFLAGS += -DKERNEL_TIMESTAMP
161	DHDCFLAGS += -DSYSTEM_TIMESTAMP
162endif
163
164#PROPTXSTATUS
165ifeq ($(CONFIG_BCMDHD_PROPTXSTATUS),y)
166ifneq ($(CONFIG_BCMDHD_USB),)
167	DHDCFLAGS += -DPROP_TXSTATUS
168endif
169ifneq ($(CONFIG_BCMDHD_SDIO),)
170	DHDCFLAGS += -DPROP_TXSTATUS -DPROPTX_MAXCOUNT
171endif
172ifneq ($(CONFIG_CFG80211),)
173	DHDCFLAGS += -DPROP_TXSTATUS_VSDB
174endif
175endif
176
177ifeq ($(CONFIG_64BIT),y)
178    DHDCFLAGS := $(filter-out -DBCMDMA32,$(DHDCFLAGS))
179    DHDCFLAGS += -DBCMDMA64OSL
180endif
181
182# For Android VTS
183ifneq ($(CONFIG_BCMDHD_ANDROID_VERSION),)
184	DHDCFLAGS += -DANDROID_VERSION=$(CONFIG_BCMDHD_ANDROID_VERSION)
185	DHDCFLAGS += -DDHD_NOTIFY_MAC_CHANGED
186ifneq ($(CONFIG_CFG80211),)
187	DHDCFLAGS += -DGSCAN_SUPPORT -DRTT_SUPPORT
188	DHDCFLAGS += -DWL_SAR_TX_POWER
189#	DHDCFLAGS += -DLINKSTAT_SUPPORT
190	DHDCFLAGS += -DCUSTOM_COUNTRY_CODE -DDHD_GET_VALID_CHANNELS
191	DHDCFLAGS += -DDEBUGABILITY -DDBG_PKT_MON
192#	DHDCFLAGS += -DDHD_LOG_DUMP
193	DHDCFLAGS += -DDHD_FW_COREDUMP
194	DHDCFLAGS += -DWL_P2P_RAND
195	DHDCFLAGS += -DAPF -DNDO_CONFIG_SUPPORT -DRSSI_MONITOR_SUPPORT
196	DHDCFLAGS += -DDHD_WAKE_STATUS -DWL_LATENCY_MODE
197	DHDOFILES += dhd_rtt.o bcm_app_utils.o
198endif
199else
200	DHDCFLAGS += -DANDROID_VERSION=0
201endif
202
203# For Debug
204ifeq ($(CONFIG_BCMDHD_DEBUG),y)
205	DHDCFLAGS += -DDHD_ARP_DUMP -DDHD_DHCP_DUMP -DDHD_ICMP_DUMP
206	DHDCFLAGS += -DDHD_DNS_DUMP -DDHD_TRX_DUMP
207	DHDCFLAGS += -DTPUT_MONITOR
208#	DHDCFLAGS += -DSCAN_SUPPRESS -DBSSCACHE
209	DHDCFLAGS += -DCHECK_DOWNLOAD_FW
210	DHDCFLAGS += -DPKT_STATICS
211	DHDCFLAGS += -DKSO_DEBUG
212#	DHDCFLAGS += -DDHD_PKTDUMP_TOFW
213endif
214
215# For Debug2
216ifeq ($(CONFIG_BCMDHD_DEBUG2),y)
217	DHDCFLAGS += -DDEBUGFS_CFG80211
218	DHDCFLAGS += -DSHOW_LOGTRACE -DDHD_LOG_DUMP -DDHD_FW_COREDUMP
219	DHDCFLAGS += -DBCMASSERT_LOG -DSI_ERROR_ENFORCE
220ifneq ($(CONFIG_BCMDHD_PCIE),)
221	DHDCFLAGS += -DEWP_EDL
222	DHDCFLAGS += -DDNGL_EVENT_SUPPORT
223	DHDCFLAGS += -DDHD_SSSR_DUMP
224endif
225endif
226
227# MESH support for kernel 3.10 later
228ifeq ($(CONFIG_WL_MESH),y)
229	DHDCFLAGS += -DWLMESH
230ifneq ($(CONFIG_CFG80211),)
231	DHDCFLAGS += -DWLMESH_CFG80211
232endif
233ifneq ($(CONFIG_BCMDHD_PCIE),)
234	DHDCFLAGS += -DBCM_HOST_BUF -DDMA_HOST_BUFFER_LEN=0x80000
235endif
236	DHDCFLAGS += -DDHD_UPDATE_INTF_MAC
237	DHDCFLAGS :=$(filter-out -DDHD_FW_COREDUMP,$(DHDCFLAGS))
238	DHDCFLAGS :=$(filter-out -DWL_STATIC_IF,$(DHDCFLAGS))
239endif
240
241# EasyMesh
242ifeq ($(CONFIG_BCMDHD_EASYMESH),y)
243	DHDCFLAGS :=$(filter-out -DDHD_FW_COREDUMP,$(DHDCFLAGS))
244	DHDCFLAGS :=$(filter-out -DDHD_LOG_DUMP,$(DHDCFLAGS))
245	DHDCFLAGS += -DWLEASYMESH
246	CONFIG_BCMDHD_DWDS := y
247endif
248
249# DWDS
250ifeq ($(CONFIG_BCMDHD_DWDS),y)
251ifneq ($(CONFIG_CFG80211),)
252	DHDCFLAGS += -DWLDWDS -DFOURADDR_AUTO_BRG
253ifneq ($(CONFIG_BCMDHD_SDIO),)
254	DHDCFLAGS += -DRXF_DEQUEUE_ON_BUSY
255endif
256	DHDCFLAGS += -DWL_STATIC_IF
257endif
258endif
259
260# CSI_SUPPORT
261ifeq ($(CONFIG_CSI_SUPPORT),y)
262	DHDCFLAGS += -DCSI_SUPPORT
263	DHDOFILES += dhd_csi.o
264endif
265
266# For TPUT_IMPROVE
267ifeq ($(CONFIG_BCMDHD_TPUT),y)
268	DHDCFLAGS += -DDHD_TPUT_PATCH
269	DHDCFLAGS += -DTCPACK_INFO_MAXNUM=10 -DTCPDATA_INFO_MAXNUM=10
270ifneq ($(CONFIG_BCMDHD_SDIO),)
271	DHDCFLAGS += -DDYNAMIC_MAX_HDR_READ
272	DHDCFLAGS :=$(filter-out -DSDTEST,$(DHDCFLAGS))
273endif
274ifneq ($(CONFIG_BCMDHD_PCIE),)
275	DHDCFLAGS += -DDHD_LB_TXP_DEFAULT_ENAB
276	DHDCFLAGS += -DSET_RPS_CPUS -DSET_XPS_CPUS
277	DHDCFLAGS += -DDHD_LB_PRIMARY_CPUS=0xF0 -DDHD_LB_SECONDARY_CPUS=0x0E
278endif
279endif
280
281# For Zero configure
282ifeq ($(CONFIG_BCMDHD_ZEROCONFIG),y)
283	DHDCFLAGS += -DWL_EXT_GENL -DSENDPROB
284	DHDOFILES += wl_ext_genl.o
285endif
286
287# For WAPI
288ifeq ($(CONFIG_BCMDHD_WAPI),y)
289	DHDCFLAGS += -DBCMWAPI_WPI -DBCMWAPI_WAI
290ifeq ($(CONFIG_BCMDHD_ANDROID_VERSION),11)
291	DHDCFLAGS += -DCFG80211_WAPI_BKPORT
292endif
293endif
294
295# For scan random mac
296ifneq ($(CONFIG_BCMDHD_RANDOM_MAC),)
297ifneq ($(CONFIG_CFG80211),)
298	DHDCFLAGS += -DSUPPORT_RANDOM_MAC_SCAN -DWL_USE_RANDOMIZED_SCAN
299endif
300endif
301
302# For NAN
303ifneq ($(CONFIG_BCMDHD_NAN),)
304	DHDCFLAGS += -DWL_NAN -DWL_NAN_DISC_CACHE
305	DHDOFILES += wl_cfgnan.o bcmbloom.o
306endif
307
308# For Module auto-selection
309ifeq ($(CONFIG_BCMDHD_AUTO_SELECT),y)
310	DHDCFLAGS += -DUPDATE_MODULE_NAME
311ifneq ($(CONFIG_BCMDHD_SDIO),)
312	DHDCFLAGS += -DGET_OTP_MODULE_NAME -DCOMPAT_OLD_MODULE
313endif
314endif
315
316ifeq ($(CONFIG_AP6XXX),m)
317	DHDCFLAGS += -DBCMDHD_MODULAR
318endif
319
320ifeq ($(CONFIG_MACH_PLATFORM),y)
321	DHDOFILES += dhd_gpio.o
322ifeq ($(CONFIG_BCMDHD_DTS),y)
323	DHDCFLAGS += -DBCMDHD_DTS
324endif
325	DHDCFLAGS += -DCUSTOMER_HW -DDHD_OF_SUPPORT
326	DHDCFLAGS += -DCUSTOMER_HW_ROCKCHIP
327endif
328
329ifeq ($(CONFIG_BCMDHD_REQUEST_FW),y)
330	DHDCFLAGS += -DDHD_LINUX_STD_FW_API
331	DHDCFLAGS += -DDHD_FW_NAME="\"fw_bcmdhd.bin\""
332	DHDCFLAGS += -DDHD_NVRAM_NAME="\"nvram.txt\""
333	DHDCFLAGS += -DDHD_CLM_NAME="\"clm_bcmdhd.blob\""
334else
335ifeq ($(CONFIG_BCMDHD_FW_PATH),)
336	DHDCFLAGS += -DCONFIG_BCMDHD_FW_PATH="\"/system/etc/firmware/fw_bcmdhd.bin\""
337	DHDCFLAGS += -DCONFIG_BCMDHD_NVRAM_PATH="\"/system/etc/firmware/nvram.txt\""
338	DHDCFLAGS += -DCONFIG_BCMDHD_CLM_PATH="\"/system/etc/firmware/clm_bcmdhd.blob\""
339endif
340endif
341
342ifeq ($(CONFIG_BCMDHD_AG),y)
343	DHDCFLAGS += -DBAND_AG
344endif
345
346ifeq ($(CONFIG_DHD_USE_STATIC_BUF),y)
347ifeq  ($(CONFIG_BCMDHD_STATIC_BUF_IN_DHD),y)
348	DHDOFILES += dhd_static_buf.o
349	DHDCFLAGS += -DDHD_STATIC_IN_DRIVER
350else
351	obj-m += dhd_static_buf.o
352endif
353	DHDCFLAGS += -DSTATIC_WL_PRIV_STRUCT -DENHANCED_STATIC_BUF
354	DHDCFLAGS += -DCONFIG_DHD_USE_STATIC_BUF
355	DHDCFLAGS += -DDHD_USE_STATIC_MEMDUMP
356ifneq ($(CONFIG_BCMDHD_PCIE),)
357	DHDCFLAGS += -DDHD_USE_STATIC_CTRLBUF
358endif
359endif
360
361ARCH ?= arm64
362BCMDHD_ROOT = $(src)
363#$(warning "BCMDHD_ROOT=$(BCMDHD_ROOT)")
364EXTRA_CFLAGS = $(DHDCFLAGS)
365EXTRA_CFLAGS += -DDHD_COMPILED=\"$(BCMDHD_ROOT)\"
366EXTRA_CFLAGS += -I$(srctree)/$(BCMDHD_ROOT)/include/ -I$(srctree)/$(BCMDHD_ROOT)/
367EXTRA_CFLAGS += $(call cc-disable-warning, unused-but-set-variable)
368ifeq ($(CONFIG_AP6XXX),m)
369EXTRA_LDFLAGS += --strip-debug
370endif
371
372obj-$(CONFIG_AP6XXX) += $(MODULE_NAME).o
373$(MODULE_NAME)-objs += $(DHDOFILES)
374ccflags-y := $(EXTRA_CFLAGS)
375
376all: bcmdhd_pcie bcmdhd_sdio bcmdhd_usb
377
378bcmdhd_pcie:
379	$(warning "building BCMDHD_PCIE..........")
380	$(MAKE) -C $(LINUXDIR) M=$(PWD) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) modules CONFIG_BCMDHD=m CONFIG_BCMDHD_PCIE=y
381
382bcmdhd_sdio:
383	$(warning "building BCMDHD_SDIO..........")
384	$(MAKE) -C $(LINUXDIR) M=$(PWD) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) modules CONFIG_BCMDHD=m CONFIG_BCMDHD_SDIO=y
385
386bcmdhd_usb:
387	$(warning "building BCMDHD_USB..........")
388	$(MAKE) -C $(LINUXDIR) M=$(PWD) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) modules CONFIG_BCMDHD=m CONFIG_BCMDHD_USB=y
389
390clean:
391	rm -rf *.o *.ko *.mod.c *~ .*.cmd *.o.cmd .*.o.cmd *.mod \
392	Module.symvers modules.order .tmp_versions modules.builtin
393