1#
2# Copyright (C) 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
8include $(TOPDIR)/rules.mk
9
10PKG_NAME:=ath10k-firmware
11PKG_SOURCE_VERSION:=b00eb8d30fbebb6a5047ccacefa8c37e072fca9c
12PKG_VERSION:=2014-11-13-$(PKG_SOURCE_VERSION)
13PKG_RELEASE:=1
14
15PKG_SOURCE_PROTO:=git
16PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
17PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
18PKG_SOURCE_URL:=https://github.com/kvalo/ath10k-firmware.git
19
20PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
21
22include $(INCLUDE_DIR)/package.mk
23
24WMENU:=Wireless Drivers
25
26define Package/ath10k-firmware-default
27  SECTION:=kernel
28  CATEGORY:=Kernel modules
29  SUBMENU:=$(WMENU)
30  URL:=$(PKG_SOURCE_URL)
31  DEPENDS:=kmod-ath10k
32endef
33
34define Package/ath10k-firmware-qca988x
35$(Package/ath10k-firmware-default)
36  DEFAULT:=PACKAGE_kmod-ath10k
37  TITLE:=ath10k firmware for QCA988x devices
38endef
39
40QCA988X_FIRMWARE_FILE:=firmware-5.bin_10.2.4.97-1
41QCA988X_FIRMWARE_FILE_CT:=firmware-2-ct-full-community-16.bin-lede
42QCA99X0_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-7.bin-lede.001
43
44define Download/ath10k-firmware-qca988x
45  URL:=https://www.codeaurora.org/cgit/quic/qsdk/oss/firmware/ath10k-firmware/plain/10.2.4/
46  FILE:=$(QCA988X_FIRMWARE_FILE)
47  MD5SUM:=fcb2fbd42d73a63fbf603505c718cbde
48endef
49$(eval $(call Download,ath10k-firmware-qca988x))
50
51define Download/ath10k-firmware-qca988x-ct
52  URL:=https://www.candelatech.com/downloads/
53  FILE:=$(QCA988X_FIRMWARE_FILE_CT)
54  MD5SUM:=5b651c0458bcf5c20701308b5e519976
55endef
56$(eval $(call Download,ath10k-firmware-qca988x-ct))
57
58define Download/ath10k-firmware-qca99x0-ct
59  URL:=https://www.candelatech.com/downloads/ath10k-10-4/
60  FILE:=$(QCA99X0_FIRMWARE_FILE_CT)
61  MD5SUM:=eb710949ff79142954aadae24616169c
62endef
63$(eval $(call Download,ath10k-firmware-qca99x0-ct))
64
65define Package/ath10k-firmware-qca99x0
66$(Package/ath10k-firmware-default)
67  TITLE:=ath10k firmware for QCA99x0 devices
68endef
69
70define Package/ath10k-firmware-qca988x-ct
71$(Package/ath10k-firmware-default)
72  TITLE:=ath10k CT 10.1 firmware for QCA988x devices
73endef
74
75define Package/ath10k-firmware-qca988x-ct/description
76Alternative ath10k firmware for QCA988X from Candela Technologies.
77Enables IBSS and other features.  See:
78http://www.candelatech.com/ath10k-10.1.php
79This firmware will NOT be used unless the standard ath10k-firmware-qca988x
80is un-selected since the driver will try to load firmware-5.bin before
81firmware-2.bin
82endef
83
84define Package/ath10k-firmware-qca99x0-ct/description
85Alternative ath10k firmware for QCA99x0 from Candela Technologies.
86Enables IBSS and other features.  See:
87http://www.candelatech.com/ath10k-10.4.php
88This firmware conflicts with the standard 99x0 firmware, so select only
89one.
90endef
91
92define Package/ath10k-firmware-qca99x0/description
93Standard ath10k firmware for QCA99x0 from QCA
94This firmware conflicts with the CT 99x0 firmware, so select only
95one.
96endef
97
98define Package/ath10k-firmware-qca99x0-ct
99$(Package/ath10k-firmware-default)
100  TITLE:=ath10k CT 10.4.3 firmware for QCA99x0 devices
101endef
102
103define Package/ath10k-firmware-qca9984
104$(Package/ath10k-firmware-default)
105  TITLE:=ath10k firmware for QCA9984 devices
106endef
107
108define Package/ath10k-firmware-qca6174
109$(Package/ath10k-firmware-default)
110  TITLE:=ath10k firmware for QCA6174 devices
111endef
112
113QCA99X0_BOARD_REV:=ddcec9efd245da9365c474f513a855a55f3ac7fe
114QCA99X0_BOARD_FILE:=board-2.bin.$(QCA99X0_BOARD_REV)
115
116define Download/qca99x0-board
117  URL:=https://source.codeaurora.org/quic/qsdk/oss/firmware/ath10k-firmware/plain/ath10k/QCA99X0/hw2.0
118  URL_FILE:=board-2.bin?id=ddcec9efd245da9365c474f513a855a55f3ac7fe
119  FILE:=$(QCA99X0_BOARD_FILE)
120  MD5SUM:=a2b3c653c2363a5641200051d6333d0a
121endef
122$(eval $(call Download,qca99x0-board))
123
124define Build/Compile
125
126endef
127
128define Package/ath10k-firmware-qca988x/install
129	$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA988X/hw2.0
130	$(INSTALL_DATA) \
131		$(PKG_BUILD_DIR)/QCA988X/board.bin \
132		$(1)/lib/firmware/ath10k/QCA988X/hw2.0/
133	$(INSTALL_DATA) \
134		$(DL_DIR)/$(QCA988X_FIRMWARE_FILE) \
135		$(1)/lib/firmware/ath10k/QCA988X/hw2.0/firmware-5.bin
136endef
137
138define Package/ath10k-firmware-qca988x-ct/install
139	$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA988X/hw2.0
140	$(INSTALL_DATA) \
141		$(PKG_BUILD_DIR)/QCA988X/board.bin \
142		$(1)/lib/firmware/ath10k/QCA988X/hw2.0/
143	$(INSTALL_DATA) \
144		$(DL_DIR)/$(QCA988X_FIRMWARE_FILE_CT) \
145		$(1)/lib/firmware/ath10k/QCA988X/hw2.0/firmware-2.bin
146endef
147
148define Package/ath10k-firmware-qca6174/install
149	$(INSTALL_DIR) $(1)/lib/firmware/ath10k
150	$(CP) $(PKG_BUILD_DIR)/QCA6174 $(1)/lib/firmware/ath10k/
151endef
152
153define Package/ath10k-firmware-qca99x0/install
154	$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA99X0/hw2.0
155	$(INSTALL_DATA) \
156		$(DL_DIR)/$(QCA99X0_BOARD_FILE) \
157		$(1)/lib/firmware/ath10k/QCA99X0/hw2.0/board-2.bin
158	$(INSTALL_DATA) \
159		$(PKG_BUILD_DIR)/QCA99X0/hw2.0/boardData_AR900B_CUS239_5G_v2_001.bin \
160		$(1)/lib/firmware/ath10k/QCA99X0/hw2.0/board.bin
161	$(INSTALL_DATA) \
162		$(PKG_BUILD_DIR)/QCA99X0/hw2.0/firmware-5.bin_10.4.1.00030-1 \
163		$(1)/lib/firmware/ath10k/QCA99X0/hw2.0/firmware-5.bin
164endef
165
166define Package/ath10k-firmware-qca99x0-ct/install
167	$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA99X0/hw2.0
168	$(INSTALL_DATA) \
169		$(DL_DIR)/$(QCA99X0_BOARD_FILE) \
170		$(1)/lib/firmware/ath10k/QCA99X0/hw2.0/board-2.bin
171	$(INSTALL_DATA) \
172		$(PKG_BUILD_DIR)/QCA99X0/hw2.0/boardData_AR900B_CUS239_5G_v2_001.bin \
173		$(1)/lib/firmware/ath10k/QCA99X0/hw2.0/board.bin
174	$(INSTALL_DATA) \
175		$(DL_DIR)/$(QCA99X0_FIRMWARE_FILE_CT) \
176		$(1)/lib/firmware/ath10k/QCA99X0/hw2.0/firmware-5.bin
177endef
178
179define Package/ath10k-firmware-qca9984/install
180	$(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9984/hw1.0
181	$(INSTALL_DATA) \
182		$(PKG_BUILD_DIR)/QCA9984/hw1.0/board-2.bin \
183		$(1)/lib/firmware/ath10k/QCA9984/hw1.0/board-2.bin
184	$(LN) -s board-2.bin $(1)/lib/firmware/ath10k/QCA9984/hw1.0/board.bin
185	$(INSTALL_DATA) \
186		$(PKG_BUILD_DIR)/QCA9984/hw1.0/firmware-5.bin_10.4-3.2-00072 \
187		$(1)/lib/firmware/ath10k/QCA9984/hw1.0/firmware-5.bin
188endef
189
190$(eval $(call BuildPackage,ath10k-firmware-qca988x))
191$(eval $(call BuildPackage,ath10k-firmware-qca99x0))
192$(eval $(call BuildPackage,ath10k-firmware-qca6174))
193$(eval $(call BuildPackage,ath10k-firmware-qca9984))
194
195$(eval $(call BuildPackage,ath10k-firmware-qca988x-ct))
196$(eval $(call BuildPackage,ath10k-firmware-qca99x0-ct))
197