lede/package/firmware/quantenna/Makefile
AmadeusGhost e76d06cd15 quantenna: only enabled on ipq806x
However, I still don’t know why rockchip and x86 users
choose this driver.

Closed: #7816, #8049
2021-10-28 23:51:38 +08:00

124 lines
3.4 KiB
Makefile

#
# Copyright (C) 2021 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=quantenna
PKG_VERSION:=37.3.2.44
PKG_RELEASE:=9
PKG_MAINTAINER:=lean
PKG_BUILD_DEPENDS:=libtirpc
include $(INCLUDE_DIR)/kernel.mk
include $(INCLUDE_DIR)/package.mk
define Build/Prepare
$(CP) ./src/* $(PKG_BUILD_DIR)/
# tunning to make the same patch apply to versions with or without -fstrict-aliasing
sed -i -e 's/ -fstrict-aliasing//' $(PKG_BUILD_DIR)/Makefile
$(Build/Patch)
endef
define Package/qtn-utils
SECTION:=firmware
CATEGORY:=Firmware
TITLE:=Quantenna QV840 (QTS1000) Utilities
DEPENDS:=+kmod-sched-act-vlan +libtirpc +tc
endef
define Package/qtn-utils/description
Management tools for Quantenna QV840 (QTS1000) WiFi modules
endef
TARGET_CFLAGS += $(FPIC) -I$(STAGING_DIR)/usr/include/tirpc
TARGET_LDFLAGS += -ltirpc
define Build/Compile
$(MAKE_VARS) $(MAKE) -C $(PKG_BUILD_DIR) $(MAKE_FLAGS) qcsapi_sockrpc
ifdef CONFIG_PACKAGE_kmod-qtn-pcie2
$(call Build/Compile/qtn-pcie2)
endif
endef
define Package/qtn-utils/install
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_DIR) $(1)/usr/lib
$(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_DIR) $(1)/etc/config
$(CP) $(PKG_BUILD_DIR)/libqcsapi_client.so* $(1)/usr/lib/
$(INSTALL_BIN) $(PKG_BUILD_DIR)/qcsapi_sockrpc $(1)/usr/sbin/
ln -s /tmp/qcsapi_target_ip.conf $(1)/etc
$(INSTALL_BIN) ./files/qtn-utils.init $(1)/etc/init.d/qtn-utils
$(INSTALL_DATA) ./files/qtn.wireless $(1)/etc/config/wireless
endef
define Package/qtn-firmware
SECTION:=firmware
CATEGORY:=Firmware
TITLE:=Quantenna QV840 (QTS1000) firmware
endef
define Package/qtn-firmware/description
Firmware for Quantenna QV840 (QTS1000) WiFi modules
endef
define Package/qtn-firmware/install
$(INSTALL_DIR) $(1)/lib/firmware/qtn
$(INSTALL_DATA) \
$(PKG_BUILD_DIR)/u-boot.bin \
$(PKG_BUILD_DIR)/topaz-linux.lzma.img \
$(1)/lib/firmware/qtn
ln -s u-boot.bin $(1)/lib/firmware/qtn/uboot_qsr1000.img
ln -s topaz-linux.lzma.img $(1)/lib/firmware/qtn/fmac_qsr1000.img
cd $(1)/lib/firmware && ln -s qtn/u-boot.bin . && ln -s qtn/topaz-linux.lzma.img .
endef
define Package/qtn-proto
SECTION:=firmware
CATEGORY:=Firmware
TITLE:=Quantenna QV840 (QTS1000) netifd support
DEPENDS:=+qtn-utils
endef
define Package/qtn-proto/install
$(INSTALL_DIR) $(1)/lib/wifi
$(INSTALL_DIR) $(1)/lib/netifd
$(INSTALL_DIR) $(1)/lib/netifd/wireless
$(INSTALL_BIN) ./files/lib/wifi/quantenna.sh $(1)/lib/wifi
$(INSTALL_BIN) ./files/lib/netifd/quantenna.sh $(1)/lib/netifd
$(INSTALL_BIN) ./files/lib/netifd/wireless/quantenna.sh $(1)/lib/netifd/wireless
endef
define KernelPackage/qtn-pcie2
SECTION:=kernel
SUBMENU:=Wireless Drivers
TITLE:=Quantenna QV840 (QTS1000) pcie2 driver
DEPENDS:=@TARGET_ipq806x +qtn-utils
FILES:=$(PKG_BUILD_DIR)/drivers/pcie2/host/arm/qdpc-host.ko
AUTOLOAD:=$(call AutoProbe,qdpc-host)
endef
define KernelPackage/qtn-pcie2/description
Quantenna QV840 (QTS1000) WiFi modules PCIE2 driver
endef
define Build/Compile/qtn-pcie2
cd $(PKG_BUILD_DIR)/drivers/pcie2/host/arm
+$(MAKE) $(CT_MAKEDEFS) $(PKG_JOBS) -C "$(LINUX_DIR)" \
$(KERNEL_MAKE_FLAGS) \
M="$(PKG_BUILD_DIR)/drivers/pcie2/host/arm" \
NOSTDINC_FLAGS="$(NOSTDINC_FLAGS)" \
modules
endef
$(eval $(call BuildPackage,qtn-utils))
$(eval $(call BuildPackage,qtn-firmware))
$(eval $(call BuildPackage,qtn-proto))
$(eval $(call KernelPackage,qtn-pcie2))