mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-25 08:21:14 +00:00
93ae4353cd
ath11k is the upstream driver for Qualcomm 802.11ax radios, both for the internal AHB and PCI based cards. This commit does however only provide PCI support while AHB will follow but its SoC specific so it will require an OpenWrt target first. It differs a bit from ath10k as it requires stuff like QRTR, MHI and QMI helpers. PCI variant requires qrtr-mhi and mhi-bus which backports do provide, however we are dropping those in a patch as they will conflict with support for the AHB variant as that one requires qrtr-smd which in turn requires RPMSG and GLINK and its not feasable to provide those in backports as they are really SoC specific. QRTR and MHI in kernel 5.10 are not usable and backporting the changes is not easy as they have changed drastically from 5.10 to 5.15 ath11k will only be available on targets that use kernel 5.15. Signed-off-by: Robert Marko <robimarko@gmail.com>
396 lines
12 KiB
Makefile
396 lines
12 KiB
Makefile
#
|
|
# Copyright (C) 2007-2015 OpenWrt.org
|
|
#
|
|
# This is free software, licensed under the GNU General Public License v2.
|
|
# See /LICENSE for more information.
|
|
#
|
|
|
|
include $(TOPDIR)/rules.mk
|
|
include $(INCLUDE_DIR)/kernel.mk
|
|
|
|
PKG_NAME:=mac80211
|
|
|
|
PKG_VERSION:=6.1-rc8
|
|
PKG_RELEASE:=2
|
|
# PKG_SOURCE_URL:=@KERNEL/linux/kernel/projects/backports/stable/v5.15.58/
|
|
PKG_SOURCE_URL:=http://mirror2.openwrt.org/sources/
|
|
PKG_HASH:=7f3d96c2573183cd79d6a3ebe5e1b7b73c19d1326d443c85b69c4181f14e6e2b
|
|
|
|
PKG_SOURCE:=backports-$(PKG_VERSION).tar.xz
|
|
PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/backports-$(PKG_VERSION)
|
|
PKG_BUILD_PARALLEL:=1
|
|
|
|
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
|
|
|
|
PKG_DRIVERS = \
|
|
mac80211-hwsim \
|
|
mt7601u \
|
|
rsi91x rsi91x-usb rsi91x-sdio\
|
|
wlcore wl12xx wl18xx
|
|
|
|
PKG_CONFIG_DEPENDS:= \
|
|
CONFIG_PACKAGE_kmod-mac80211 \
|
|
CONFIG_PACKAGE_CFG80211_TESTMODE \
|
|
CONFIG_PACKAGE_MAC80211_DEBUGFS \
|
|
CONFIG_PACKAGE_MAC80211_MESH \
|
|
CONFIG_PACKAGE_MAC80211_TRACING \
|
|
CONFIG_PACKAGE_IWLWIFI_DEBUG \
|
|
CONFIG_PACKAGE_IWLWIFI_DEBUGFS \
|
|
CONFIG_PACKAGE_RTLWIFI_DEBUG \
|
|
|
|
include $(INCLUDE_DIR)/package.mk
|
|
|
|
WMENU:=Wireless Drivers
|
|
|
|
define KernelPackage/mac80211/Default
|
|
SUBMENU:=$(WMENU)
|
|
URL:=https://wireless.wiki.kernel.org/
|
|
MAINTAINER:=Felix Fietkau <nbd@nbd.name>
|
|
endef
|
|
|
|
config_package=$(if $(CONFIG_PACKAGE_kmod-$(1)),m)
|
|
|
|
config-y:= \
|
|
WLAN \
|
|
CFG80211_CERTIFICATION_ONUS \
|
|
MAC80211_RC_MINSTREL \
|
|
MAC80211_RC_MINSTREL_HT \
|
|
MAC80211_RC_MINSTREL_VHT \
|
|
MAC80211_RC_DEFAULT_MINSTREL \
|
|
WLAN_VENDOR_ADMTEK \
|
|
WLAN_VENDOR_ATH \
|
|
WLAN_VENDOR_ATMEL \
|
|
WLAN_VENDOR_BROADCOM \
|
|
WLAN_VENDOR_CISCO \
|
|
WLAN_VENDOR_INTEL \
|
|
WLAN_VENDOR_INTERSIL \
|
|
WLAN_VENDOR_MARVELL \
|
|
WLAN_VENDOR_MEDIATEK \
|
|
WLAN_VENDOR_RALINK \
|
|
WLAN_VENDOR_REALTEK \
|
|
WLAN_VENDOR_RSI \
|
|
WLAN_VENDOR_ST \
|
|
WLAN_VENDOR_TI \
|
|
WLAN_VENDOR_ZYDAS \
|
|
|
|
config-$(call config_package,cfg80211) += CFG80211
|
|
config-$(CONFIG_PACKAGE_CFG80211_TESTMODE) += NL80211_TESTMODE
|
|
|
|
config-$(call config_package,mac80211) += MAC80211
|
|
config-$(CONFIG_PACKAGE_MAC80211_MESH) += MAC80211_MESH
|
|
|
|
include ath.mk
|
|
include broadcom.mk
|
|
include intel.mk
|
|
include marvell.mk
|
|
include ralink.mk
|
|
include realtek.mk
|
|
|
|
PKG_CONFIG_DEPENDS += \
|
|
$(patsubst %,CONFIG_PACKAGE_kmod-%,$(PKG_DRIVERS))
|
|
|
|
define KernelPackage/cfg80211
|
|
$(call KernelPackage/mac80211/Default)
|
|
TITLE:=cfg80211 - wireless configuration API
|
|
DEPENDS+= +iw +iwinfo +wireless-regdb +USE_RFKILL:kmod-rfkill
|
|
ABI_VERSION:=$(PKG_VERSION)-$(PKG_RELEASE)
|
|
FILES:= \
|
|
$(PKG_BUILD_DIR)/compat/compat.ko \
|
|
$(PKG_BUILD_DIR)/net/wireless/cfg80211.ko
|
|
endef
|
|
|
|
define KernelPackage/cfg80211/description
|
|
cfg80211 is the Linux wireless LAN (802.11) configuration API.
|
|
endef
|
|
|
|
define KernelPackage/cfg80211/config
|
|
if PACKAGE_kmod-cfg80211
|
|
|
|
config PACKAGE_CFG80211_TESTMODE
|
|
bool "Enable testmode command support"
|
|
default n
|
|
help
|
|
This is typically used for tests and calibration during
|
|
manufacturing, or vendor specific debugging features
|
|
|
|
endif
|
|
endef
|
|
|
|
|
|
define KernelPackage/mac80211
|
|
$(call KernelPackage/mac80211/Default)
|
|
TITLE:=Linux 802.11 Wireless Networking Stack
|
|
# +kmod-crypto-cmac is a runtime only dependency of net/mac80211/aes_cmac.c
|
|
DEPENDS+= +kmod-cfg80211 +kmod-crypto-cmac +kmod-crypto-ccm +kmod-crypto-gcm +hostapd-common
|
|
KCONFIG:=\
|
|
CONFIG_AVERAGE=y
|
|
FILES:= $(PKG_BUILD_DIR)/net/mac80211/mac80211.ko
|
|
ABI_VERSION:=$(PKG_VERSION)-$(PKG_RELEASE)
|
|
MENU:=1
|
|
endef
|
|
|
|
define KernelPackage/mac80211/config
|
|
if PACKAGE_kmod-mac80211
|
|
|
|
config PACKAGE_MAC80211_DEBUGFS
|
|
bool "Export mac80211 internals in DebugFS"
|
|
select KERNEL_DEBUG_FS
|
|
default y
|
|
help
|
|
Select this to see extensive information about
|
|
the internal state of mac80211 in debugfs.
|
|
|
|
config PACKAGE_MAC80211_TRACING
|
|
bool "Enable tracing (mac80211 and supported drivers)"
|
|
select KERNEL_FTRACE
|
|
select KERNEL_ENABLE_DEFAULT_TRACERS
|
|
default n
|
|
help
|
|
Select this to enable tracing of mac80211 and
|
|
related wifi drivers (using trace-cmd).
|
|
|
|
config PACKAGE_MAC80211_MESH
|
|
bool "Enable 802.11s mesh support"
|
|
default y
|
|
|
|
endif
|
|
endef
|
|
|
|
define KernelPackage/mac80211/description
|
|
Generic IEEE 802.11 Networking Stack (mac80211)
|
|
endef
|
|
|
|
define KernelPackage/mac80211-hwsim
|
|
$(call KernelPackage/mac80211/Default)
|
|
TITLE:=mac80211 HW simulation device
|
|
DEPENDS+= +kmod-mac80211 +@DRIVER_11AX_SUPPORT +@DRIVER_11AC_SUPPORT
|
|
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/mac80211_hwsim.ko
|
|
AUTOLOAD:=$(call AutoProbe,mac80211_hwsim)
|
|
endef
|
|
|
|
|
|
define KernelPackage/mt7601u
|
|
$(call KernelPackage/mac80211/Default)
|
|
TITLE:=MT7601U-based USB dongles Wireless Driver
|
|
DEPENDS+= +kmod-mac80211 @USB_SUPPORT +kmod-usb-core +mt7601u-firmware
|
|
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/mediatek/mt7601u/mt7601u.ko
|
|
AUTOLOAD:=$(call AutoProbe,mt7601u)
|
|
endef
|
|
|
|
define KernelPackage/rsi91x
|
|
$(call KernelPackage/mac80211/Default)
|
|
TITLE:=Redpine Signals Inc 91x WLAN driver support
|
|
DEPENDS+= +kmod-mac80211 +rs9113-firmware
|
|
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rsi/rsi_91x.ko
|
|
endef
|
|
|
|
define KernelPackage/rsi91x-usb
|
|
$(call KernelPackage/mac80211/Default)
|
|
TITLE:=Redpine Signals USB bus support
|
|
DEPENDS+=@USB_SUPPORT +kmod-usb-core +kmod-mac80211 +kmod-rsi91x +rs9113-firmware
|
|
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rsi/rsi_usb.ko
|
|
AUTOLOAD:=$(call AutoProbe,rsi_usb)
|
|
endef
|
|
|
|
define KernelPackage/rsi91x-sdio
|
|
$(call KernelPackage/mac80211/Default)
|
|
TITLE:=Redpine Signals SDIO bus support
|
|
DEPENDS+= +kmod-mac80211 +kmod-mmc +kmod-rsi91x +rs9113-firmware
|
|
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/rsi/rsi_sdio.ko
|
|
AUTOLOAD:=$(call AutoProbe,rsi_sdio)
|
|
endef
|
|
|
|
|
|
define KernelPackage/wlcore
|
|
$(call KernelPackage/mac80211/Default)
|
|
TITLE:=TI common driver part
|
|
DEPENDS+= +kmod-mmc +kmod-mac80211
|
|
FILES:= \
|
|
$(PKG_BUILD_DIR)/drivers/net/wireless/ti/wlcore/wlcore.ko \
|
|
$(PKG_BUILD_DIR)/drivers/net/wireless/ti/wlcore/wlcore_sdio.ko
|
|
AUTOLOAD:=$(call AutoProbe,wlcore wlcore_sdio)
|
|
endef
|
|
|
|
define KernelPackage/wlcore/description
|
|
This module contains some common parts needed by TI Wireless drivers.
|
|
endef
|
|
|
|
define KernelPackage/wl12xx
|
|
$(call KernelPackage/mac80211/Default)
|
|
TITLE:=Driver for TI WL12xx
|
|
URL:=https://wireless.wiki.kernel.org/en/users/drivers/wl12xx
|
|
DEPENDS+= +kmod-wlcore +wl12xx-firmware
|
|
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ti/wl12xx/wl12xx.ko
|
|
AUTOLOAD:=$(call AutoProbe,wl12xx)
|
|
endef
|
|
|
|
define KernelPackage/wl12xx/description
|
|
Kernel modules for TI WL12xx
|
|
endef
|
|
|
|
define KernelPackage/wl18xx
|
|
$(call KernelPackage/mac80211/Default)
|
|
TITLE:=Driver for TI WL18xx
|
|
URL:=https://wireless.wiki.kernel.org/en/users/drivers/wl18xx
|
|
DEPENDS+= +kmod-wlcore +wl18xx-firmware
|
|
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ti/wl18xx/wl18xx.ko
|
|
AUTOLOAD:=$(call AutoProbe,wl18xx)
|
|
endef
|
|
|
|
define KernelPackage/wl18xx/description
|
|
Kernel modules for TI WL18xx
|
|
endef
|
|
|
|
|
|
ifdef CONFIG_PACKAGE_MAC80211_DEBUGFS
|
|
config-y += \
|
|
CFG80211_DEBUGFS \
|
|
MAC80211_DEBUGFS
|
|
endif
|
|
|
|
ifdef CONFIG_PACKAGE_MAC80211_TRACING
|
|
config-y += \
|
|
IWLWIFI_DEVICE_TRACING
|
|
endif
|
|
|
|
config-$(call config_package,mac80211-hwsim) += MAC80211_HWSIM
|
|
config-$(call config_package,mt7601u) += MT7601U
|
|
config-y += WL_MEDIATEK
|
|
|
|
config-$(call config_package,wlcore) += WLCORE WLCORE_SDIO
|
|
config-$(call config_package,wl12xx) += WL12XX
|
|
config-$(call config_package,wl18xx) += WL18XX
|
|
config-y += WL_TI WILINK_PLATFORM_DATA
|
|
config-$(call config_package,rsi91x) += RSI_91X
|
|
config-$(call config_package,rsi91x-usb) += RSI_USB
|
|
config-$(call config_package,rsi91x-sdio) += RSI_SDIO
|
|
|
|
config-$(CONFIG_LEDS_TRIGGERS) += MAC80211_LEDS
|
|
|
|
C_DEFINES=
|
|
|
|
ifeq ($(BUILD_VARIANT),smallbuffers)
|
|
C_DEFINES+= -DCONFIG_ATH10K_SMALLBUFFERS
|
|
endif
|
|
|
|
MAKE_OPTS:= \
|
|
$(subst -C $(LINUX_DIR),-C "$(PKG_BUILD_DIR)",$(KERNEL_MAKEOPTS)) \
|
|
EXTRA_CFLAGS="-I$(PKG_BUILD_DIR)/include $(IREMAP_CFLAGS) $(C_DEFINES)" \
|
|
KLIB_BUILD="$(LINUX_DIR)" \
|
|
MODPROBE=true \
|
|
KLIB=$(TARGET_MODULES_DIR) \
|
|
KERNEL_SUBLEVEL=$(lastword $(subst ., ,$(KERNEL_PATCHVER))) \
|
|
KBUILD_LDFLAGS_MODULE_PREREQ=
|
|
|
|
define ConfigVars
|
|
$(subst $(space),,$(foreach opt,$(config-$(1)),CPTCFG_$(opt)=$(1)
|
|
))
|
|
endef
|
|
|
|
define mac80211_config
|
|
$(call ConfigVars,m)$(call ConfigVars,y)
|
|
endef
|
|
$(eval $(call shexport,mac80211_config))
|
|
|
|
define Build/Prepare
|
|
rm -rf $(PKG_BUILD_DIR)
|
|
mkdir -p $(PKG_BUILD_DIR)
|
|
$(PKG_UNPACK)
|
|
$(Build/Patch)
|
|
rm -rf \
|
|
$(PKG_BUILD_DIR)/include/linux/ssb \
|
|
$(PKG_BUILD_DIR)/include/linux/bcma \
|
|
$(PKG_BUILD_DIR)/include/net/bluetooth
|
|
|
|
rm -f \
|
|
$(PKG_BUILD_DIR)/include/linux/cordic.h \
|
|
$(PKG_BUILD_DIR)/include/linux/crc8.h \
|
|
$(PKG_BUILD_DIR)/include/linux/eeprom_93cx6.h \
|
|
$(PKG_BUILD_DIR)/include/linux/wl12xx.h \
|
|
$(PKG_BUILD_DIR)/include/linux/mhi.h \
|
|
$(PKG_BUILD_DIR)/include/net/ieee80211.h \
|
|
$(PKG_BUILD_DIR)/backport-include/linux/bcm47xx_nvram.h
|
|
|
|
echo 'compat-wireless-$(PKG_VERSION)-$(PKG_RELEASE)-$(REVISION)' > $(PKG_BUILD_DIR)/compat_version
|
|
endef
|
|
|
|
ifneq ($(CONFIG_PACKAGE_kmod-cfg80211),)
|
|
define Build/Compile/kmod
|
|
rm -rf $(PKG_BUILD_DIR)/modules
|
|
+$(MAKE) $(PKG_JOBS) $(MAKE_OPTS) modules
|
|
endef
|
|
endif
|
|
|
|
#do not Build/Configure for EXTERNAL KERNEL
|
|
ifeq ($(strip $(CONFIG_EXTERNAL_KERNEL_TREE)),"")
|
|
ifeq ($(strip $(CONFIG_KERNEL_GIT_CLONE_URI)),"")
|
|
define Build/Configure
|
|
cmp $(PKG_BUILD_DIR)/include/linux/ath9k_platform.h $(LINUX_DIR)/include/linux/ath9k_platform.h
|
|
cmp $(PKG_BUILD_DIR)/include/linux/ath5k_platform.h $(LINUX_DIR)/include/linux/ath5k_platform.h
|
|
cmp $(PKG_BUILD_DIR)/include/linux/rt2x00_platform.h $(LINUX_DIR)/include/linux/rt2x00_platform.h
|
|
endef
|
|
endif
|
|
endif
|
|
|
|
define Build/Patch
|
|
$(if $(QUILT),rm -rf $(PKG_BUILD_DIR)/patches; mkdir -p $(PKG_BUILD_DIR)/patches)
|
|
$(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/build,build/)
|
|
$(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/subsys,subsys/)
|
|
$(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/ath,ath/)
|
|
$(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/ath5k,ath5k/)
|
|
$(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/ath9k,ath9k/)
|
|
$(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/ath10k,ath10k/)
|
|
$(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/ath11k,ath11k/)
|
|
$(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/rt2x00,rt2x00/)
|
|
$(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/mwl,mwl/)
|
|
$(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/brcm,brcm/)
|
|
$(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/rtl,rtl/)
|
|
$(if $(QUILT),touch $(PKG_BUILD_DIR)/.quilt_used)
|
|
endef
|
|
|
|
define Quilt/Refresh/Package
|
|
$(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/build,build/)
|
|
$(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/subsys,subsys/)
|
|
$(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/ath,ath/)
|
|
$(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/ath5k,ath5k/)
|
|
$(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/ath9k,ath9k/)
|
|
$(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/ath10k,ath10k/)
|
|
$(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/ath11k,ath11k/)
|
|
$(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/rt2x00,rt2x00/)
|
|
$(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/mwl,mwl/)
|
|
$(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/brcm,brcm/)
|
|
$(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/rtl,rtl/)
|
|
endef
|
|
|
|
define Build/Compile
|
|
$(SH_FUNC) var2file "$(call shvar,mac80211_config)" $(PKG_BUILD_DIR)/.config
|
|
$(MAKE) $(MAKE_OPTS) allnoconfig
|
|
$(call Build/Compile/kmod)
|
|
endef
|
|
|
|
define Build/InstallDev
|
|
mkdir -p \
|
|
$(1)/usr/include/mac80211 \
|
|
$(1)/usr/include/mac80211-backport \
|
|
$(1)/usr/include/mac80211/ath \
|
|
$(1)/usr/include/net/mac80211
|
|
$(CP) $(PKG_BUILD_DIR)/net/mac80211/*.h $(PKG_BUILD_DIR)/include/* $(1)/usr/include/mac80211/
|
|
$(CP) $(PKG_BUILD_DIR)/backport-include/* $(1)/usr/include/mac80211-backport/
|
|
$(CP) $(PKG_BUILD_DIR)/net/mac80211/rate.h $(1)/usr/include/net/mac80211/
|
|
$(CP) $(PKG_BUILD_DIR)/drivers/net/wireless/ath/*.h $(1)/usr/include/mac80211/ath/
|
|
rm -f $(1)/usr/include/mac80211-backport/linux/module.h
|
|
endef
|
|
|
|
|
|
define KernelPackage/cfg80211/install
|
|
$(INSTALL_DIR) $(1)/lib/wifi $(1)/lib/netifd/wireless
|
|
$(INSTALL_DATA) ./files/lib/wifi/mac80211.sh $(1)/lib/wifi
|
|
$(INSTALL_BIN) ./files/lib/netifd/wireless/mac80211.sh $(1)/lib/netifd/wireless
|
|
$(INSTALL_DIR) $(1)/etc/hotplug.d/ieee80211
|
|
$(INSTALL_DATA) ./files/mac80211.hotplug $(1)/etc/hotplug.d/ieee80211/10-wifi-detect
|
|
endef
|
|
|
|
$(eval $(foreach drv,$(PKG_DRIVERS),$(call KernelPackage,$(drv))))
|
|
$(eval $(call KernelPackage,cfg80211))
|
|
$(eval $(call KernelPackage,mac80211))
|