mac80211: verbose logging
[openwrt/staging/stintel.git] / package / kernel / mac80211 / Makefile
1 #
2 # Copyright (C) 2007-2015 OpenWrt.org
3 #
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
6 #
7
8 include $(TOPDIR)/rules.mk
9 include $(INCLUDE_DIR)/kernel.mk
10
11 PKG_NAME:=mac80211
12
13 PKG_VERSION:=6.1.24
14 PKG_RELEASE:=4
15 # PKG_SOURCE_URL:=@KERNEL/linux/kernel/projects/backports/stable/v5.15.58/
16 PKG_SOURCE_URL:=http://mirror2.openwrt.org/sources/
17 PKG_HASH:=5d39aca7e34c33cb9b3e366117b2e86841b7bdd37933679d6b1e61be6b150648
18
19 PKG_SOURCE:=backports-$(PKG_VERSION).tar.xz
20 PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/backports-$(PKG_VERSION)
21 PKG_BUILD_PARALLEL:=1
22
23 PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
24
25 PKG_DRIVERS = \
26 mac80211-hwsim \
27 mt7601u \
28 rsi91x rsi91x-usb rsi91x-sdio\
29 wlcore wl12xx wl18xx
30
31 PKG_CONFIG_DEPENDS:= \
32 CONFIG_PACKAGE_kmod-mac80211 \
33 CONFIG_PACKAGE_CFG80211_TESTMODE \
34 CONFIG_PACKAGE_MAC80211_DEBUGFS \
35 CONFIG_PACKAGE_MAC80211_MESH \
36 CONFIG_PACKAGE_MAC80211_TRACING \
37 CONFIG_PACKAGE_IWLWIFI_DEBUG \
38 CONFIG_PACKAGE_IWLWIFI_DEBUGFS \
39 CONFIG_PACKAGE_RTLWIFI_DEBUG \
40
41 include $(INCLUDE_DIR)/package.mk
42
43 WMENU:=Wireless Drivers
44
45 define KernelPackage/mac80211/Default
46 SUBMENU:=$(WMENU)
47 URL:=https://wireless.wiki.kernel.org/
48 MAINTAINER:=Felix Fietkau <nbd@nbd.name>
49 endef
50
51 config_package=$(if $(CONFIG_PACKAGE_kmod-$(1)),m)
52
53 config-y:= \
54 WLAN \
55 CFG80211_CERTIFICATION_ONUS \
56 MAC80211_DEBUG_MENU \
57 MAC80211_RC_MINSTREL \
58 MAC80211_RC_MINSTREL_HT \
59 MAC80211_RC_MINSTREL_VHT \
60 MAC80211_RC_DEFAULT_MINSTREL \
61 MAC80211_VERBOSE_DEBUG \
62 WLAN_VENDOR_ADMTEK \
63 WLAN_VENDOR_ATH \
64 WLAN_VENDOR_ATMEL \
65 WLAN_VENDOR_BROADCOM \
66 WLAN_VENDOR_CISCO \
67 WLAN_VENDOR_INTEL \
68 WLAN_VENDOR_INTERSIL \
69 WLAN_VENDOR_MARVELL \
70 WLAN_VENDOR_MEDIATEK \
71 WLAN_VENDOR_RALINK \
72 WLAN_VENDOR_REALTEK \
73 WLAN_VENDOR_RSI \
74 WLAN_VENDOR_ST \
75 WLAN_VENDOR_TI \
76 WLAN_VENDOR_ZYDAS \
77
78 config-$(call config_package,cfg80211) += CFG80211
79 config-$(CONFIG_PACKAGE_CFG80211_TESTMODE) += NL80211_TESTMODE
80
81 config-$(call config_package,mac80211) += MAC80211
82 config-$(CONFIG_PACKAGE_MAC80211_MESH) += MAC80211_MESH
83
84 include ath.mk
85 include broadcom.mk
86 include intel.mk
87 include marvell.mk
88 include ralink.mk
89 include realtek.mk
90
91 PKG_CONFIG_DEPENDS += \
92 $(patsubst %,CONFIG_PACKAGE_kmod-%,$(PKG_DRIVERS))
93
94 define KernelPackage/cfg80211
95 $(call KernelPackage/mac80211/Default)
96 TITLE:=cfg80211 - wireless configuration API
97 DEPENDS+= +iw +iwinfo +wireless-regdb +USE_RFKILL:kmod-rfkill
98 ABI_VERSION:=$(PKG_VERSION)-$(PKG_RELEASE)
99 FILES:= \
100 $(PKG_BUILD_DIR)/compat/compat.ko \
101 $(PKG_BUILD_DIR)/net/wireless/cfg80211.ko
102 endef
103
104 define KernelPackage/cfg80211/description
105 cfg80211 is the Linux wireless LAN (802.11) configuration API.
106 endef
107
108 define KernelPackage/cfg80211/config
109 if PACKAGE_kmod-cfg80211
110
111 config PACKAGE_CFG80211_TESTMODE
112 bool "Enable testmode command support"
113 default n
114 help
115 This is typically used for tests and calibration during
116 manufacturing, or vendor specific debugging features
117
118 endif
119 endef
120
121
122 define KernelPackage/mac80211
123 $(call KernelPackage/mac80211/Default)
124 TITLE:=Linux 802.11 Wireless Networking Stack
125 # +kmod-crypto-cmac is a runtime only dependency of net/mac80211/aes_cmac.c
126 DEPENDS+= +kmod-cfg80211 +kmod-crypto-cmac +kmod-crypto-ccm +kmod-crypto-gcm +hostapd-common
127 KCONFIG:=\
128 CONFIG_AVERAGE=y
129 FILES:= $(PKG_BUILD_DIR)/net/mac80211/mac80211.ko
130 ABI_VERSION:=$(PKG_VERSION)-$(PKG_RELEASE)
131 MENU:=1
132 endef
133
134 define KernelPackage/mac80211/config
135 if PACKAGE_kmod-mac80211
136
137 config PACKAGE_MAC80211_DEBUGFS
138 bool "Export mac80211 internals in DebugFS"
139 select KERNEL_DEBUG_FS
140 default y
141 help
142 Select this to see extensive information about
143 the internal state of mac80211 in debugfs.
144
145 config PACKAGE_MAC80211_TRACING
146 bool "Enable tracing (mac80211 and supported drivers)"
147 select KERNEL_FTRACE
148 select KERNEL_ENABLE_DEFAULT_TRACERS
149 default n
150 help
151 Select this to enable tracing of mac80211 and
152 related wifi drivers (using trace-cmd).
153
154 config PACKAGE_MAC80211_MESH
155 bool "Enable 802.11s mesh support"
156 default y
157
158 endif
159 endef
160
161 define KernelPackage/mac80211/description
162 Generic IEEE 802.11 Networking Stack (mac80211)
163 endef
164
165 define KernelPackage/mac80211-hwsim
166 $(call KernelPackage/mac80211/Default)
167 TITLE:=mac80211 HW simulation device
168 DEPENDS+= +kmod-mac80211 +@DRIVER_11AX_SUPPORT +@DRIVER_11AC_SUPPORT
169 FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/mac80211_hwsim.ko
170 AUTOLOAD:=$(call AutoProbe,mac80211_hwsim)
171 endef
172
173
174 define KernelPackage/mt7601u
175 $(call KernelPackage/mac80211/Default)
176 TITLE:=MT7601U-based USB dongles Wireless Driver
177 DEPENDS+= +kmod-mac80211 @USB_SUPPORT +kmod-usb-core +mt7601u-firmware
178 FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/mediatek/mt7601u/mt7601u.ko
179 AUTOLOAD:=$(call AutoProbe,mt7601u)
180 endef
181
182 define KernelPackage/rsi91x
183 $(call KernelPackage/mac80211/Default)
184 TITLE:=Redpine Signals Inc 91x WLAN driver support
185 DEPENDS+= +kmod-mac80211 +rs9113-firmware
186 FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rsi/rsi_91x.ko
187 endef
188
189 define KernelPackage/rsi91x-usb
190 $(call KernelPackage/mac80211/Default)
191 TITLE:=Redpine Signals USB bus support
192 DEPENDS+=@USB_SUPPORT +kmod-usb-core +kmod-mac80211 +kmod-rsi91x +rs9113-firmware
193 FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rsi/rsi_usb.ko
194 AUTOLOAD:=$(call AutoProbe,rsi_usb)
195 endef
196
197 define KernelPackage/rsi91x-sdio
198 $(call KernelPackage/mac80211/Default)
199 TITLE:=Redpine Signals SDIO bus support
200 DEPENDS+= +kmod-mac80211 +kmod-mmc +kmod-rsi91x +rs9113-firmware
201 FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rsi/rsi_sdio.ko
202 AUTOLOAD:=$(call AutoProbe,rsi_sdio)
203 endef
204
205
206 define KernelPackage/wlcore
207 $(call KernelPackage/mac80211/Default)
208 TITLE:=TI common driver part
209 DEPENDS+= +kmod-mmc +kmod-mac80211
210 FILES:= \
211 $(PKG_BUILD_DIR)/drivers/net/wireless/ti/wlcore/wlcore.ko \
212 $(PKG_BUILD_DIR)/drivers/net/wireless/ti/wlcore/wlcore_sdio.ko
213 AUTOLOAD:=$(call AutoProbe,wlcore wlcore_sdio)
214 endef
215
216 define KernelPackage/wlcore/description
217 This module contains some common parts needed by TI Wireless drivers.
218 endef
219
220 define KernelPackage/wl12xx
221 $(call KernelPackage/mac80211/Default)
222 TITLE:=Driver for TI WL12xx
223 URL:=https://wireless.wiki.kernel.org/en/users/drivers/wl12xx
224 DEPENDS+= +kmod-wlcore +wl12xx-firmware
225 FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ti/wl12xx/wl12xx.ko
226 AUTOLOAD:=$(call AutoProbe,wl12xx)
227 endef
228
229 define KernelPackage/wl12xx/description
230 Kernel modules for TI WL12xx
231 endef
232
233 define KernelPackage/wl18xx
234 $(call KernelPackage/mac80211/Default)
235 TITLE:=Driver for TI WL18xx
236 URL:=https://wireless.wiki.kernel.org/en/users/drivers/wl18xx
237 DEPENDS+= +kmod-wlcore +wl18xx-firmware
238 FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ti/wl18xx/wl18xx.ko
239 AUTOLOAD:=$(call AutoProbe,wl18xx)
240 endef
241
242 define KernelPackage/wl18xx/description
243 Kernel modules for TI WL18xx
244 endef
245
246
247 ifdef CONFIG_PACKAGE_MAC80211_DEBUGFS
248 config-y += \
249 CFG80211_DEBUGFS \
250 MAC80211_DEBUGFS
251 endif
252
253 ifdef CONFIG_PACKAGE_MAC80211_TRACING
254 config-y += \
255 IWLWIFI_DEVICE_TRACING
256 endif
257
258 config-$(call config_package,mac80211-hwsim) += MAC80211_HWSIM
259 config-$(call config_package,mt7601u) += MT7601U
260 config-y += WL_MEDIATEK
261
262 config-$(call config_package,wlcore) += WLCORE WLCORE_SDIO
263 config-$(call config_package,wl12xx) += WL12XX
264 config-$(call config_package,wl18xx) += WL18XX
265 config-y += WL_TI WILINK_PLATFORM_DATA
266 config-$(call config_package,rsi91x) += RSI_91X
267 config-$(call config_package,rsi91x-usb) += RSI_USB
268 config-$(call config_package,rsi91x-sdio) += RSI_SDIO
269
270 config-$(CONFIG_LEDS_TRIGGERS) += MAC80211_LEDS
271
272 C_DEFINES=
273
274 ifeq ($(BUILD_VARIANT),smallbuffers)
275 C_DEFINES+= -DCONFIG_ATH10K_SMALLBUFFERS
276 endif
277
278 MAKE_OPTS:= \
279 $(subst -C $(LINUX_DIR),-C "$(PKG_BUILD_DIR)",$(KERNEL_MAKEOPTS)) \
280 EXTRA_CFLAGS="-I$(PKG_BUILD_DIR)/include $(IREMAP_CFLAGS) $(C_DEFINES)" \
281 KLIB_BUILD="$(LINUX_DIR)" \
282 MODPROBE=true \
283 KLIB=$(TARGET_MODULES_DIR) \
284 KERNEL_SUBLEVEL=$(lastword $(subst ., ,$(KERNEL_PATCHVER))) \
285 KBUILD_LDFLAGS_MODULE_PREREQ=
286
287 define ConfigVars
288 $(subst $(space),,$(foreach opt,$(config-$(1)),CPTCFG_$(opt)=$(1)
289 ))
290 endef
291
292 define mac80211_config
293 $(call ConfigVars,m)$(call ConfigVars,y)
294 endef
295 $(eval $(call shexport,mac80211_config))
296
297 define Build/Prepare
298 rm -rf $(PKG_BUILD_DIR)
299 mkdir -p $(PKG_BUILD_DIR)
300 $(PKG_UNPACK)
301 $(Build/Patch)
302 rm -rf \
303 $(PKG_BUILD_DIR)/include/linux/ssb \
304 $(PKG_BUILD_DIR)/include/linux/bcma \
305 $(PKG_BUILD_DIR)/include/net/bluetooth
306
307 rm -f \
308 $(PKG_BUILD_DIR)/include/linux/cordic.h \
309 $(PKG_BUILD_DIR)/include/linux/crc8.h \
310 $(PKG_BUILD_DIR)/include/linux/eeprom_93cx6.h \
311 $(PKG_BUILD_DIR)/include/linux/wl12xx.h \
312 $(PKG_BUILD_DIR)/include/linux/mhi.h \
313 $(PKG_BUILD_DIR)/include/net/ieee80211.h \
314 $(PKG_BUILD_DIR)/backport-include/linux/bcm47xx_nvram.h
315
316 echo 'compat-wireless-$(PKG_VERSION)-$(PKG_RELEASE)-$(REVISION)' > $(PKG_BUILD_DIR)/compat_version
317 endef
318
319 ifneq ($(CONFIG_PACKAGE_kmod-cfg80211),)
320 define Build/Compile/kmod
321 rm -rf $(PKG_BUILD_DIR)/modules
322 +$(MAKE) $(PKG_JOBS) $(MAKE_OPTS) modules
323 endef
324 endif
325
326 #do not Build/Configure for EXTERNAL KERNEL
327 ifeq ($(strip $(CONFIG_EXTERNAL_KERNEL_TREE)),"")
328 ifeq ($(strip $(CONFIG_KERNEL_GIT_CLONE_URI)),"")
329 define Build/Configure
330 cmp $(PKG_BUILD_DIR)/include/linux/ath9k_platform.h $(LINUX_DIR)/include/linux/ath9k_platform.h
331 cmp $(PKG_BUILD_DIR)/include/linux/ath5k_platform.h $(LINUX_DIR)/include/linux/ath5k_platform.h
332 cmp $(PKG_BUILD_DIR)/include/linux/rt2x00_platform.h $(LINUX_DIR)/include/linux/rt2x00_platform.h
333 endef
334 endif
335 endif
336
337 define Build/Patch
338 $(if $(QUILT),rm -rf $(PKG_BUILD_DIR)/patches; mkdir -p $(PKG_BUILD_DIR)/patches)
339 $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/build,build/)
340 $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/subsys,subsys/)
341 $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/ath,ath/)
342 $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/ath5k,ath5k/)
343 $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/ath9k,ath9k/)
344 $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/ath10k,ath10k/)
345 $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/ath11k,ath11k/)
346 $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/rt2x00,rt2x00/)
347 $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/mt7601u,mt7601u/)
348 $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/mwl,mwl/)
349 $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/brcm,brcm/)
350 $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/rtl,rtl/)
351 $(if $(QUILT),touch $(PKG_BUILD_DIR)/.quilt_used)
352 endef
353
354 define Quilt/Refresh/Package
355 $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/build,build/)
356 $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/subsys,subsys/)
357 $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/ath,ath/)
358 $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/ath5k,ath5k/)
359 $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/ath9k,ath9k/)
360 $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/ath10k,ath10k/)
361 $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/ath11k,ath11k/)
362 $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/rt2x00,rt2x00/)
363 $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/mt7601u,mt7601u/)
364 $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/mwl,mwl/)
365 $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/brcm,brcm/)
366 $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/rtl,rtl/)
367 endef
368
369 define Build/Compile
370 $(SH_FUNC) var2file "$(call shvar,mac80211_config)" $(PKG_BUILD_DIR)/.config
371 $(MAKE) $(MAKE_OPTS) allnoconfig
372 $(call Build/Compile/kmod)
373 endef
374
375 define Build/InstallDev
376 mkdir -p \
377 $(1)/usr/include/mac80211 \
378 $(1)/usr/include/mac80211-backport \
379 $(1)/usr/include/mac80211/ath \
380 $(1)/usr/include/net/mac80211
381 $(CP) $(PKG_BUILD_DIR)/net/mac80211/*.h $(PKG_BUILD_DIR)/include/* $(1)/usr/include/mac80211/
382 $(CP) $(PKG_BUILD_DIR)/backport-include/* $(1)/usr/include/mac80211-backport/
383 $(CP) $(PKG_BUILD_DIR)/net/mac80211/rate.h $(1)/usr/include/net/mac80211/
384 $(CP) $(PKG_BUILD_DIR)/drivers/net/wireless/ath/*.h $(1)/usr/include/mac80211/ath/
385 rm -f $(1)/usr/include/mac80211-backport/linux/module.h
386 endef
387
388
389 define KernelPackage/cfg80211/install
390 $(INSTALL_DIR) $(1)/lib/wifi $(1)/lib/netifd/wireless
391 $(INSTALL_DATA) ./files/lib/wifi/mac80211.sh $(1)/lib/wifi
392 $(INSTALL_BIN) ./files/lib/netifd/wireless/mac80211.sh $(1)/lib/netifd/wireless
393 $(INSTALL_DIR) $(1)/etc/hotplug.d/ieee80211
394 $(INSTALL_DATA) ./files/mac80211.hotplug $(1)/etc/hotplug.d/ieee80211/10-wifi-detect
395 endef
396
397 $(eval $(foreach drv,$(PKG_DRIVERS),$(call KernelPackage,$(drv))))
398 $(eval $(call KernelPackage,cfg80211))
399 $(eval $(call KernelPackage,mac80211))