From 5a749377329ea69d37e37ee08b2c4fb921619bd9 Mon Sep 17 00:00:00 2001 From: coolsnowwolf Date: Sun, 31 Dec 2023 23:17:38 +0800 Subject: [PATCH] ath11k-firmware: add ipq6018 support --- package/firmware/ath11k-firmware/Makefile | 14 ++++++ package/firmware/ipq-wifi/Makefile | 42 ++++++++++++++---- .../src/board-glinet_gl-ax1800.bin.ipq6018 | Bin 0 -> 65620 bytes .../src/board-glinet_gl-axt1800.bin.ipq6018 | Bin 0 -> 65620 bytes .../ipq-wifi/src/board-linksys_mr7350.ipq6018 | Bin 0 -> 65620 bytes .../ipq-wifi/src/board-qihoo_360v6.ipq6018 | Bin 0 -> 65620 bytes .../ipq-wifi/src/board-xiaomi_rm1800.ipq6018 | Bin 0 -> 65620 bytes 7 files changed, 47 insertions(+), 9 deletions(-) create mode 100644 package/firmware/ipq-wifi/src/board-glinet_gl-ax1800.bin.ipq6018 create mode 100644 package/firmware/ipq-wifi/src/board-glinet_gl-axt1800.bin.ipq6018 create mode 100644 package/firmware/ipq-wifi/src/board-linksys_mr7350.ipq6018 create mode 100644 package/firmware/ipq-wifi/src/board-qihoo_360v6.ipq6018 create mode 100644 package/firmware/ipq-wifi/src/board-xiaomi_rm1800.ipq6018 diff --git a/package/firmware/ath11k-firmware/Makefile b/package/firmware/ath11k-firmware/Makefile index fc7968a95..0e1c548e2 100644 --- a/package/firmware/ath11k-firmware/Makefile +++ b/package/firmware/ath11k-firmware/Makefile @@ -32,6 +32,11 @@ define Package/ath11k-firmware-default DEPENDS:= endef +define Package/ath11k-firmware-ipq6018 +$(Package/ath11k-firmware-default) + TITLE:=IPQ6018 ath11k firmware +endef + define Package/ath11k-firmware-ipq8074 $(Package/ath11k-firmware-default) TITLE:=IPQ8074 ath11k firmware @@ -57,6 +62,14 @@ define Download/qcn9074-board endef $(eval $(call Download,qcn9074-board)) +define Package/ath11k-firmware-ipq6018/install + $(INSTALL_DIR) $(1)/lib/firmware/IPQ6018 + $(INSTALL_DIR) $(1)/lib/firmware/ath11k/IPQ6018/hw1.0 + $(INSTALL_DATA) \ + $(PKG_BUILD_DIR)/ath11k-firmware/IPQ6018/hw1.0/2.5.0.1/WLAN.HK.2.5.0.1-01208-QCAHKSWPL_SILICONZ-1/* \ + $(1)/lib/firmware/IPQ6018/ +endef + define Package/ath11k-firmware-ipq8074/install $(INSTALL_DIR) $(1)/lib/firmware/IPQ8074 $(INSTALL_DATA) \ @@ -73,5 +86,6 @@ define Package/ath11k-firmware-qcn9074/install $(DL_DIR)/$(QCN9074_BOARD_FILE) $(1)/lib/firmware/ath11k/QCN9074/hw1.0/board-2.bin endef +$(eval $(call BuildPackage,ath11k-firmware-ipq6018)) $(eval $(call BuildPackage,ath11k-firmware-ipq8074)) $(eval $(call BuildPackage,ath11k-firmware-qcn9074)) diff --git a/package/firmware/ipq-wifi/Makefile b/package/firmware/ipq-wifi/Makefile index 3729ee65f..d890f8a0f 100644 --- a/package/firmware/ipq-wifi/Makefile +++ b/package/firmware/ipq-wifi/Makefile @@ -2,13 +2,13 @@ include $(TOPDIR)/rules.mk include $(INCLUDE_DIR)/version.mk PKG_NAME:=ipq-wifi -PKG_RELEASE:=2 +PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=$(PROJECT_GIT)/project/firmware/qca-wireless.git -PKG_SOURCE_DATE:=2023-06-03 -PKG_SOURCE_VERSION:=cd9c30ca47b8e5388b770c523a7f6b8b969e2f92 -PKG_MIRROR_HASH:=45e623fcc512b514ade0f22e217275536aa8de4afba7dfdb11696482b8fa71a2 +PKG_SOURCE_DATE:=2024-01-06 +PKG_SOURCE_VERSION:=71f45cff8944405b7cc2bf5c19df2bd8fe7f2421 +PKG_MIRROR_HASH:=90c3c1659c54cdb4685d0a71633746c1000230e459801eb8ce12c805a994cc37 PKG_FLAGS:=nonshared @@ -28,21 +28,32 @@ endef # ALLWIFIBOARDS:= \ + arcadyan_aw1000 \ buffalo_wxr-5950ax12 \ compex_wpq873 \ dynalink_dl-wrx36 \ edgecore_eap102 \ edimax_cax1800 \ + glinet_gl-ax1800 \ + glinet_gl-axt1800 \ + linksys_mr7350 \ + linksys_mx4200 \ netgear_rax120v2 \ netgear_wax218 \ - p2w_r619ac \ + netgear_wax620 \ + netgear_wax630 \ prpl_haze \ + qihoo_360v6 \ qnap_301w \ redmi_ax6 \ wallys_dr40x9 \ xiaomi_ax3600 \ xiaomi_ax9000 \ + xiaomi_rm1800 \ + yuncore_ax880 \ + zte_mf269 \ zte_mf289f \ + zte_mf287 \ zte_mf287plus \ zyxel_nbg7815 @@ -52,7 +63,7 @@ define Package/ipq-wifi-default SUBMENU:=ath10k Board-Specific Overrides SECTION:=firmware CATEGORY:=Firmware - DEPENDS:=@(TARGET_ipq40xx||TARGET_ipq806x||TARGET_ipq807x) + DEPENDS:=@(TARGET_ipq40xx||TARGET_ipq806x||TARGET_qualcommax) TITLE:=Custom Board endef @@ -77,12 +88,14 @@ define ipq-wifi-install-one $(call ipq-wifi-install-one-to,$(1),$(2),QCA9984/hw1.0),\ $(if $(filter $(suffix $(1)),.QCA99X0 .qca99x0),\ $(call ipq-wifi-install-one-to,$(1),$(2),QCA99X0/hw2.0),\ - $(if $(filter $(suffix $(1)),.IPQ8074 .ipq8074),\ + $(if $(filter $(suffix $(1)),.IPQ6018 .ipq6018),\ + $(call ipq-wifi-install-ath11-one-to,$(1),$(2),IPQ6018/hw1.0),\ + $(if $(filter $(suffix $(1)),.IPQ8074 .ipq8074 .ipq8174),\ $(call ipq-wifi-install-ath11-one-to,$(1),$(2),IPQ8074/hw2.0),\ $(if $(filter $(suffix $(1)),.QCN9074 .qcn9074),\ $(call ipq-wifi-install-ath11-one-to,$(1),$(2),QCN9074/hw1.0),\ $(error Unrecognized board-file suffix '$(suffix $(1))' for '$(1)')\ - ))))))) + )))))))) endef # Blank line required at end of above define due to foreach context @@ -118,21 +131,32 @@ endef # Place files in this directory as board-. # Add $(eval $(call generate-ipq-wifi-package,,)) +$(eval $(call generate-ipq-wifi-package,arcadyan_aw1000,Arcadyan AW1000)) $(eval $(call generate-ipq-wifi-package,buffalo_wxr-5950ax12,Buffalo WXR-5950AX12)) $(eval $(call generate-ipq-wifi-package,compex_wpq873,Compex WPQ-873)) $(eval $(call generate-ipq-wifi-package,dynalink_dl-wrx36,Dynalink DL-WRX36)) $(eval $(call generate-ipq-wifi-package,edgecore_eap102,Edgecore EAP102)) $(eval $(call generate-ipq-wifi-package,edimax_cax1800,Edimax CAX1800)) +$(eval $(call generate-ipq-wifi-package,glinet_gl-ax1800,GL.iNet GL-AX1800)) +$(eval $(call generate-ipq-wifi-package,glinet_gl-axt1800,GL.iNet GL-AXT1800)) +$(eval $(call generate-ipq-wifi-package,linksys_mr7350,Linksys MR7350)) +$(eval $(call generate-ipq-wifi-package,linksys_mx4200,Linksys MX4200)) $(eval $(call generate-ipq-wifi-package,netgear_rax120v2,Netgear RAX120v2)) $(eval $(call generate-ipq-wifi-package,netgear_wax218,Netgear WAX218)) -$(eval $(call generate-ipq-wifi-package,p2w_r619ac,P&W R619AC)) +$(eval $(call generate-ipq-wifi-package,netgear_wax620,Netgear WAX620)) +$(eval $(call generate-ipq-wifi-package,netgear_wax630,Netgear WAX630)) +$(eval $(call generate-ipq-wifi-package,qihoo_360v6,Qihoo 360V6)) $(eval $(call generate-ipq-wifi-package,qnap_301w,QNAP 301w)) $(eval $(call generate-ipq-wifi-package,prpl_haze,prpl Haze)) $(eval $(call generate-ipq-wifi-package,redmi_ax6,Redmi AX6)) $(eval $(call generate-ipq-wifi-package,wallys_dr40x9,Wallys DR40X9)) $(eval $(call generate-ipq-wifi-package,xiaomi_ax3600,Xiaomi AX3600)) $(eval $(call generate-ipq-wifi-package,xiaomi_ax9000,Xiaomi AX9000)) +$(eval $(call generate-ipq-wifi-package,xiaomi_rm1800,Xiaomi RM1800)) +$(eval $(call generate-ipq-wifi-package,yuncore_ax880,Yuncore AX880)) +$(eval $(call generate-ipq-wifi-package,zte_mf269,ZTE MF269)) $(eval $(call generate-ipq-wifi-package,zte_mf289f,ZTE MF289F)) +$(eval $(call generate-ipq-wifi-package,zte_mf287,ZTE MF287)) $(eval $(call generate-ipq-wifi-package,zte_mf287plus,ZTE MF287Plus)) $(eval $(call generate-ipq-wifi-package,zyxel_nbg7815,Zyxel NBG7815)) diff --git a/package/firmware/ipq-wifi/src/board-glinet_gl-ax1800.bin.ipq6018 b/package/firmware/ipq-wifi/src/board-glinet_gl-ax1800.bin.ipq6018 new file mode 100644 index 0000000000000000000000000000000000000000..8666252d5866a0fe1f68b4023e0a2f6df34f2607 GIT binary patch literal 65620 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