e1a50e752c6133a9bce7aea4c2cfd091a78c0317
[openwrt/openwrt.git] / target / linux / ipq806x / image / Makefile
1 # Copyright (c) 2014 The Linux Foundation. All rights reserved.
2 #
3 include $(TOPDIR)/rules.mk
4 include $(INCLUDE_DIR)/image.mk
5
6 DEVICE_VARS += NETGEAR_BOARD_ID NETGEAR_HW_ID
7 DEVICE_VARS += TPLINK_BOARD_ID
8
9 define Build/buffalo-rootfs-cksum
10 ( \
11 echo -ne "\x$$(od -A n -t u1 $@ | tr -s ' ' '\n' | \
12 $(STAGING_DIR_HOST)/bin/awk '{s+=$$0}END{printf "%x", 255-s%256}')"; \
13 ) >> $@
14 endef
15
16 define Build/edimax-header
17 $(eval edimax_model=$(word 1,$(1)))
18
19 $(STAGING_DIR_HOST)/bin/mkedimaximg \
20 -b -s CSYS -m $(edimax_model) \
21 -f 0x70000 -S 0x1200000 \
22 -i $@ -o $@.new
23 @mv $@.new $@
24 endef
25
26 define Device/Default
27 PROFILES := Default
28 KERNEL_DEPENDS = $$(wildcard $(DTS_DIR)/$$(DEVICE_DTS).dts)
29 KERNEL_INITRAMFS_PREFIX := $$(IMG_PREFIX)-$(1)-initramfs
30 KERNEL_PREFIX := $$(IMAGE_PREFIX)
31 KERNEL_LOADADDR = 0x42208000
32 DEVICE_DTS = $$(SOC)-$(lastword $(subst _, ,$(1)))
33 SUPPORTED_DEVICES := $(subst _,$(comma),$(1))
34 IMAGES := sysupgrade.bin
35 IMAGE/sysupgrade.bin = sysupgrade-tar | append-metadata
36 IMAGE/sysupgrade.bin/squashfs :=
37 endef
38
39 define Device/LegacyImage
40 KERNEL_SUFFIX := -uImage
41 KERNEL = kernel-bin | append-dtb | uImage none
42 KERNEL_NAME := zImage
43 endef
44
45 define Device/FitImage
46 KERNEL_SUFFIX := -fit-uImage.itb
47 KERNEL = kernel-bin | gzip | fit gzip $$(DTS_DIR)/$$(DEVICE_DTS).dtb
48 KERNEL_NAME := Image
49 endef
50
51 define Device/FitImageLzma
52 KERNEL_SUFFIX := -fit-uImage.itb
53 KERNEL = kernel-bin | lzma | fit lzma $$(DTS_DIR)/$$(DEVICE_DTS).dtb
54 KERNEL_NAME := Image
55 endef
56
57 define Device/UbiFit
58 KERNEL_IN_UBI := 1
59 IMAGES := nand-factory.bin nand-sysupgrade.bin
60 IMAGE/nand-factory.bin := append-ubi
61 IMAGE/nand-sysupgrade.bin := sysupgrade-tar | append-metadata
62 endef
63
64 define Device/DniImage
65 KERNEL_SUFFIX := -uImage
66 KERNEL = kernel-bin | append-dtb | uImage none
67 KERNEL_NAME := zImage
68 NETGEAR_BOARD_ID :=
69 NETGEAR_HW_ID :=
70 UBINIZE_OPTS := -E 5
71 IMAGES += factory.img
72 IMAGE/factory.img := append-kernel | pad-offset $$$$(BLOCKSIZE) 64 | append-uImage-fakehdr filesystem | pad-to $$$$(KERNEL_SIZE) | append-ubi | netgear-dni
73 IMAGE/sysupgrade.bin := append-kernel | pad-offset $$$$(BLOCKSIZE) 64 | append-uImage-fakehdr filesystem | sysupgrade-tar kernel=$$$$@ | append-metadata
74 endef
75
76 define Device/TpSafeImage
77 KERNEL_SUFFIX := -uImage
78 KERNEL = kernel-bin | append-dtb | uImage none
79 KERNEL_NAME := zImage
80 TPLINK_BOARD_ID :=
81 IMAGES += factory.bin
82 IMAGE/factory.bin := append-rootfs | tplink-safeloader factory
83 IMAGE/sysupgrade.bin := append-rootfs | tplink-safeloader sysupgrade | append-metadata
84 endef
85
86 define Device/ZyXELImage
87 KERNEL_SUFFIX := -uImage
88 KERNEL = kernel-bin | append-dtb | uImage none | pad-to $$(KERNEL_SIZE)
89 KERNEL_NAME := zImage
90 IMAGES += factory.bin
91 IMAGE/factory.bin := append-rootfs | pad-rootfs | pad-to $$$$(BLOCKSIZE) | zyxel-ras-image separate-kernel
92 IMAGE/sysupgrade.bin/squashfs := append-rootfs | pad-to $$$$(BLOCKSIZE) | sysupgrade-tar rootfs=$$$$@ | append-metadata
93 endef
94
95 define Device/asrock_g10
96 $(call Device/FitImage)
97 $(call Device/UbiFit)
98 SOC := qcom-ipq8064
99 DEVICE_VENDOR := ASRock
100 DEVICE_MODEL := G10
101 BLOCKSIZE := 128k
102 PAGESIZE := 2048
103 KERNEL_SIZE := 5332k
104 DEVICE_PACKAGES := kmod-i2c-gpio ath10k-firmware-qca99x0-ct
105 IMAGE/nand-factory.bin := append-ubi | edimax-header RN67
106 BROKEN := y
107 endef
108 TARGET_DEVICES += asrock_g10
109
110 define Device/buffalo_wxr-2533dhp
111 $(call Device/LegacyImage)
112 SOC := qcom-ipq8064
113 DEVICE_VENDOR := Buffalo
114 DEVICE_MODEL := WXR-2533DHP
115 BLOCKSIZE := 128k
116 PAGESIZE := 2048
117 IMAGE_SIZE := 65536k
118 KERNEL_IN_UBI := 1
119 IMAGE/sysupgrade.bin := append-rootfs | buffalo-rootfs-cksum | \
120 sysupgrade-tar rootfs=$$$$@ | append-metadata
121 DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct
122 endef
123 TARGET_DEVICES += buffalo_wxr-2533dhp
124
125 define Device/compex_wpq864
126 $(call Device/FitImage)
127 $(call Device/UbiFit)
128 DEVICE_VENDOR := Compex
129 DEVICE_MODEL := WPQ864
130 BLOCKSIZE := 128k
131 PAGESIZE := 2048
132 SOC := qcom-ipq8064
133 DEVICE_PACKAGES := kmod-gpio-beeper
134 endef
135 TARGET_DEVICES += compex_wpq864
136
137 define Device/edgecore_ecw5410
138 $(call Device/FitImage)
139 $(call Device/UbiFit)
140 DEVICE_VENDOR := Edgecore
141 DEVICE_MODEL := ECW5410
142 SOC := qcom-ipq8068
143 BLOCKSIZE := 128k
144 PAGESIZE := 2048
145 DEVICE_DTS_CONFIG := config@v2.0-ap160
146 DEVICE_PACKAGES := ath10k-firmware-qca9984-ct ipq-wifi-edgecore_ecw5410
147 endef
148 TARGET_DEVICES += edgecore_ecw5410
149
150 define Device/linksys_ea7500-v1
151 $(call Device/LegacyImage)
152 DEVICE_VENDOR := Linksys
153 DEVICE_MODEL := EA7500
154 DEVICE_VARIANT := v1
155 SOC := qcom-ipq8064
156 PAGESIZE := 2048
157 BLOCKSIZE := 128k
158 KERNEL_SIZE := 3072k
159 KERNEL = kernel-bin | append-dtb | uImage none | append-uImage-fakehdr filesystem
160 UBINIZE_OPTS := -E 5
161 IMAGES := factory.bin sysupgrade.bin
162 IMAGE/factory.bin := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi | pad-to $$$$(PAGESIZE)
163 DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct
164 endef
165 TARGET_DEVICES += linksys_ea7500-v1
166
167 define Device/linksys_ea8500
168 $(call Device/LegacyImage)
169 DEVICE_VENDOR := Linksys
170 DEVICE_MODEL := EA8500
171 SOC := qcom-ipq8064
172 PAGESIZE := 2048
173 BLOCKSIZE := 128k
174 KERNEL_SIZE := 3072k
175 KERNEL = kernel-bin | append-dtb | uImage none | append-uImage-fakehdr filesystem
176 BOARD_NAME := ea8500
177 SUPPORTED_DEVICES += ea8500
178 UBINIZE_OPTS := -E 5
179 IMAGES += factory.bin
180 IMAGE/factory.bin := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi
181 DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct
182 endef
183 TARGET_DEVICES += linksys_ea8500
184
185 define Device/nec_wg2600hp
186 $(call Device/LegacyImage)
187 DEVICE_VENDOR := NEC
188 DEVICE_MODEL := Aterm WG2600HP
189 SOC := qcom-ipq8064
190 BLOCKSIZE := 64k
191 BOARD_NAME := wg2600hp
192 IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | append-metadata
193 DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct
194 endef
195 TARGET_DEVICES += nec_wg2600hp
196
197 define Device/nec_wg2600hp3
198 $(call Device/LegacyImage)
199 DEVICE_VENDOR := NEC Platforms
200 DEVICE_MODEL := Aterm WG2600HP3
201 SOC := qcom-ipq8062
202 BLOCKSIZE := 64k
203 IMAGES := sysupgrade.bin
204 IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | append-metadata
205 DEVICE_PACKAGES := -kmod-ata-ahci -kmod-ata-ahci-platform -kmod-usb-ohci -kmod-usb2 \
206 -kmod-usb-ledtrig-usbport -kmod-usb-phy-qcom-dwc3 -kmod-usb3 -kmod-usb-dwc3-qcom \
207 ath10k-firmware-qca9984-ct ipq-wifi-nec_wg2600hp3
208 endef
209 TARGET_DEVICES += nec_wg2600hp3
210
211 define Device/netgear_d7800
212 $(call Device/DniImage)
213 DEVICE_VENDOR := NETGEAR
214 DEVICE_MODEL := Nighthawk X4 D7800
215 SOC := qcom-ipq8064
216 KERNEL_SIZE := 4096k
217 NETGEAR_BOARD_ID := D7800
218 NETGEAR_HW_ID := 29764958+0+128+512+4x4+4x4
219 BLOCKSIZE := 128k
220 PAGESIZE := 2048
221 BOARD_NAME := d7800
222 SUPPORTED_DEVICES += d7800
223 DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct
224 endef
225 TARGET_DEVICES += netgear_d7800
226
227 define Device/netgear_r7500
228 $(call Device/DniImage)
229 DEVICE_VENDOR := NETGEAR
230 DEVICE_MODEL := Nighthawk X4 R7500
231 DEVICE_VARIANT := v1
232 SOC := qcom-ipq8064
233 KERNEL_SIZE := 4096k
234 NETGEAR_BOARD_ID := R7500
235 NETGEAR_HW_ID := 29764841+0+128+256+3x3+4x4
236 BLOCKSIZE := 128k
237 PAGESIZE := 2048
238 BOARD_NAME := r7500
239 SUPPORTED_DEVICES += r7500
240 DEVICE_PACKAGES := ath10k-firmware-qca988x-ct
241 endef
242 TARGET_DEVICES += netgear_r7500
243
244 define Device/netgear_r7500v2
245 $(call Device/DniImage)
246 DEVICE_VENDOR := NETGEAR
247 DEVICE_MODEL := Nighthawk X4 R7500
248 DEVICE_VARIANT := v2
249 SOC := qcom-ipq8064
250 KERNEL_SIZE := 4096k
251 NETGEAR_BOARD_ID := R7500v2
252 NETGEAR_HW_ID := 29764958+0+128+512+3x3+4x4
253 BLOCKSIZE := 128k
254 PAGESIZE := 2048
255 BOARD_NAME := r7500v2
256 SUPPORTED_DEVICES += r7500v2
257 DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct ath10k-firmware-qca988x-ct
258 endef
259 TARGET_DEVICES += netgear_r7500v2
260
261 define Device/netgear_r7800
262 $(call Device/DniImage)
263 DEVICE_VENDOR := NETGEAR
264 DEVICE_MODEL := Nighthawk X4S R7800
265 SOC := qcom-ipq8065
266 KERNEL_SIZE := 4096k
267 NETGEAR_BOARD_ID := R7800
268 NETGEAR_HW_ID := 29764958+0+128+512+4x4+4x4+cascade
269 BLOCKSIZE := 128k
270 PAGESIZE := 2048
271 BOARD_NAME := r7800
272 SUPPORTED_DEVICES += r7800
273 DEVICE_PACKAGES := ath10k-firmware-qca9984-ct
274 endef
275 TARGET_DEVICES += netgear_r7800
276
277 define Device/qcom_ipq8064-ap148
278 $(call Device/FitImage)
279 $(call Device/UbiFit)
280 DEVICE_VENDOR := Qualcomm
281 DEVICE_MODEL := AP148
282 DEVICE_VARIANT := standard
283 SOC := qcom-ipq8064
284 DEVICE_DTS := qcom-ipq8064-ap148
285 KERNEL_INSTALL := 1
286 BLOCKSIZE := 128k
287 PAGESIZE := 2048
288 BOARD_NAME := ap148
289 SUPPORTED_DEVICES += ap148
290 DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct
291 endef
292 TARGET_DEVICES += qcom_ipq8064-ap148
293
294 define Device/qcom_ipq8064-ap148-legacy
295 $(call Device/LegacyImage)
296 $(call Device/UbiFit)
297 DEVICE_VENDOR := Qualcomm
298 DEVICE_MODEL := AP148
299 DEVICE_VARIANT := legacy
300 SOC := qcom-ipq8064
301 DEVICE_DTS := qcom-ipq8064-ap148
302 BLOCKSIZE := 128k
303 PAGESIZE := 2048
304 BOARD_NAME := ap148
305 SUPPORTED_DEVICES := qcom,ipq8064-ap148 ap148
306 DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct
307 endef
308 TARGET_DEVICES += qcom_ipq8064-ap148-legacy
309
310 define Device/qcom_ipq8064-ap161
311 $(call Device/FitImage)
312 $(call Device/UbiFit)
313 DEVICE_VENDOR := Qualcomm
314 DEVICE_MODEL := AP161
315 SOC := qcom-ipq8064
316 DEVICE_DTS := qcom-ipq8064-ap161
317 KERNEL_INSTALL := 1
318 BLOCKSIZE := 128k
319 PAGESIZE := 2048
320 BOARD_NAME := ap161
321 DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct
322 endef
323 TARGET_DEVICES += qcom_ipq8064-ap161
324
325 define Device/qcom_ipq8064-db149
326 $(call Device/FitImage)
327 DEVICE_VENDOR := Qualcomm
328 DEVICE_MODEL := DB149
329 SOC := qcom-ipq8064
330 DEVICE_DTS := qcom-ipq8064-db149
331 KERNEL_INSTALL := 1
332 BOARD_NAME := db149
333 DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct
334 endef
335 TARGET_DEVICES += qcom_ipq8064-db149
336
337 define Device/tplink_c2600
338 $(call Device/TpSafeImage)
339 DEVICE_VENDOR := TP-Link
340 DEVICE_MODEL := Archer C2600
341 DEVICE_VARIANT := v1
342 SOC := qcom-ipq8064
343 BLOCKSIZE := 128k
344 PAGESIZE := 2048
345 BOARD_NAME := c2600
346 SUPPORTED_DEVICES += c2600
347 TPLINK_BOARD_ID := C2600
348 DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct
349 endef
350 TARGET_DEVICES += tplink_c2600
351
352 define Device/tplink_vr2600v
353 DEVICE_VENDOR := TP-Link
354 DEVICE_MODEL := Archer VR2600v
355 DEVICE_VARIANT := v1
356 KERNEL_SUFFIX := -uImage
357 KERNEL = kernel-bin | append-dtb | uImage none
358 KERNEL_NAME := zImage
359 KERNEL_SIZE := 3072k
360 SOC := qcom-ipq8064
361 BLOCKSIZE := 128k
362 PAGESIZE := 2048
363 BOARD_NAME := vr2600v
364 SUPPORTED_DEVICES += vr2600v
365 DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct
366 IMAGE/sysupgrade.bin := pad-extra 512 | append-kernel | pad-to $$$$(KERNEL_SIZE) | append-rootfs | pad-rootfs | append-metadata
367 endef
368 TARGET_DEVICES += tplink_vr2600v
369
370 define Device/zyxel_nbg6817
371 DEVICE_VENDOR := ZyXEL
372 DEVICE_MODEL := NBG6817
373 SOC := qcom-ipq8065
374 KERNEL_SIZE := 4096k
375 BLOCKSIZE := 64k
376 BOARD_NAME := nbg6817
377 RAS_BOARD := NBG6817
378 RAS_ROOTFS_SIZE := 20934k
379 RAS_VERSION := "V1.99(OWRT.9999)C0"
380 SUPPORTED_DEVICES += nbg6817
381 DEVICE_PACKAGES := ath10k-firmware-qca9984-ct e2fsprogs kmod-fs-ext4 losetup
382 $(call Device/ZyXELImage)
383 endef
384 TARGET_DEVICES += zyxel_nbg6817
385
386 $(eval $(call BuildImage))