ath79: add Cisco Meraki MR18
[openwrt/staging/chunkeey.git] / target / linux / ath79 / image / nand.mk
1 define Build/dongwon-header
2 head -c 4 $@ > $@.tmp
3 head -c 8 /dev/zero >> $@.tmp
4 tail -c +9 $@ >> $@.tmp
5 ( \
6 header_crc="$$(head -c 68 $@.tmp | gzip -c | \
7 tail -c 8 | od -An -N4 -tx4 --endian little | tr -d ' \n')"; \
8 printf "$$(echo $$header_crc | sed 's/../\\x&/g')" | \
9 dd of=$@.tmp bs=4 count=1 seek=1 conv=notrunc \
10 )
11 mv $@.tmp $@
12 endef
13
14 define Build/MerakiNAND
15 -$(STAGING_DIR_HOST)/bin/mkmerakifw \
16 -B $(1) -s \
17 -i $@ \
18 -o $@.new
19 @mv $@.new $@
20 endef
21
22 define Build/meraki-old-nand
23 -$(STAGING_DIR_HOST)/bin/mkmerakifw-old \
24 -B $(1) -s \
25 -i $@ \
26 -o $@.new
27 @mv $@.new $@
28 endef
29
30 # attention: only zlib compression is allowed for the boot fs
31 define Build/zyxel-buildkerneljffs
32 mkdir -p $@.tmp/boot
33 cp $@ $@.tmp/boot/vmlinux.lzma.uImage
34 $(STAGING_DIR_HOST)/bin/mkfs.jffs2 \
35 --big-endian --squash-uids -v -e 128KiB -q -f -n -x lzma -x rtime \
36 -o $@ \
37 -d $@.tmp
38 rm -rf $@.tmp
39 endef
40
41 define Build/zyxel-factory
42 let \
43 maxsize="$(subst k,* 1024,$(RAS_ROOTFS_SIZE))"; \
44 let size="$$(stat -c%s $@)"; \
45 if [ $$size -lt $$maxsize ]; then \
46 $(STAGING_DIR_HOST)/bin/mkrasimage \
47 -b $(RAS_BOARD) \
48 -v $(RAS_VERSION) \
49 -r $@ \
50 -s $$maxsize \
51 -o $@.new \
52 -l 131072 \
53 && mv $@.new $@ ; \
54 fi
55 endef
56
57 define Device/8dev_rambutan
58 SOC := qca9557
59 DEVICE_VENDOR := 8devices
60 DEVICE_MODEL := Rambutan
61 DEVICE_PACKAGES := kmod-usb2
62 BLOCKSIZE := 128k
63 PAGESIZE := 2048
64 KERNEL_SIZE := 4096k
65 KERNEL_IN_UBI := 1
66 IMAGES := factory.bin sysupgrade.tar
67 IMAGE/sysupgrade.tar := sysupgrade-tar | append-metadata
68 IMAGE/factory.bin := append-ubi
69 endef
70 TARGET_DEVICES += 8dev_rambutan
71
72 define Device/aerohive_hiveap-121
73 SOC := ar9344
74 DEVICE_VENDOR := Aerohive
75 DEVICE_MODEL := HiveAP 121
76 DEVICE_PACKAGES := kmod-usb2
77 BLOCKSIZE := 128k
78 PAGESIZE := 2048
79 IMAGE_SIZE := 116m
80 KERNEL_SIZE := 5120k
81 UBINIZE_OPTS := -E 5
82 SUPPORTED_DEVICES += hiveap-121
83 IMAGES += factory.bin
84 IMAGE/factory.bin := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi | \
85 check-size
86 IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
87 endef
88 TARGET_DEVICES += aerohive_hiveap-121
89
90 define Device/domywifi_dw33d
91 SOC := qca9558
92 DEVICE_VENDOR := DomyWifi
93 DEVICE_MODEL := DW33D
94 DEVICE_PACKAGES := kmod-usb2 kmod-usb-storage kmod-usb-ledtrig-usbport \
95 kmod-ath10k-ct ath10k-firmware-qca988x-ct
96 KERNEL_SIZE := 5120k
97 IMAGE_SIZE := 98304k
98 BLOCKSIZE := 128k
99 PAGESIZE := 2048
100 UBINIZE_OPTS := -E 5
101 IMAGES += factory.bin
102 IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
103 IMAGE/factory.bin := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi | \
104 check-size
105 endef
106 TARGET_DEVICES += domywifi_dw33d
107
108 define Device/dongwon_dw02-412h
109 SOC := qca9557
110 DEVICE_VENDOR := Dongwon T&I
111 DEVICE_MODEL := DW02-412H
112 DEVICE_ALT0_VENDOR := KT
113 DEVICE_ALT0_MODEL := GiGA WiFi home
114 DEVICE_PACKAGES := kmod-usb2 kmod-ath10k-ct ath10k-firmware-qca988x-ct
115 KERNEL_SIZE := 8192k
116 BLOCKSIZE := 128k
117 PAGESIZE := 2048
118 KERNEL := $$(KERNEL) | dongwon-header
119 KERNEL_INITRAMFS := $$(KERNEL)
120 UBINIZE_OPTS := -E 5
121 IMAGES += factory.img
122 IMAGE/factory.img := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi | \
123 check-size
124 IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
125 endef
126
127 define Device/dongwon_dw02-412h-64m
128 $(Device/dongwon_dw02-412h)
129 DEVICE_VARIANT := (64M)
130 DEVICE_ALT0_VARIANT := (64M)
131 IMAGE_SIZE := 49152k
132 endef
133 TARGET_DEVICES += dongwon_dw02-412h-64m
134
135 define Device/dongwon_dw02-412h-128m
136 $(Device/dongwon_dw02-412h)
137 DEVICE_VARIANT := (128M)
138 DEVICE_ALT0_VARIANT := (128M)
139 IMAGE_SIZE := 114688k
140 endef
141 TARGET_DEVICES += dongwon_dw02-412h-128m
142
143 define Device/glinet_gl-ar300m-common-nand
144 SOC := qca9531
145 DEVICE_VENDOR := GL.iNet
146 DEVICE_MODEL := GL-AR300M
147 DEVICE_PACKAGES := kmod-usb2
148 KERNEL_SIZE := 4096k
149 IMAGE_SIZE := 16000k
150 PAGESIZE := 2048
151 VID_HDR_OFFSET := 2048
152 endef
153
154 define Device/glinet_gl-ar300m-nand
155 $(Device/glinet_gl-ar300m-common-nand)
156 DEVICE_VARIANT := NAND
157 BLOCKSIZE := 128k
158 IMAGES += factory.img
159 IMAGE/factory.img := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi
160 IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
161 SUPPORTED_DEVICES += glinet,gl-ar300m-nor
162 endef
163 TARGET_DEVICES += glinet_gl-ar300m-nand
164
165 define Device/glinet_gl-ar300m-nor
166 $(Device/glinet_gl-ar300m-common-nand)
167 DEVICE_VARIANT := NOR
168 SUPPORTED_DEVICES += glinet,gl-ar300m-nand gl-ar300m
169 endef
170 TARGET_DEVICES += glinet_gl-ar300m-nor
171
172 define Device/glinet_gl-ar750s-common
173 SOC := qca9563
174 DEVICE_VENDOR := GL.iNet
175 DEVICE_MODEL := GL-AR750S
176 DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca9887-ct kmod-usb2 \
177 kmod-usb-storage block-mount
178 IMAGE_SIZE := 16000k
179 endef
180
181 define Device/glinet_gl-ar750s-nor-nand
182 $(Device/glinet_gl-ar750s-common)
183 DEVICE_VARIANT := NOR/NAND
184 KERNEL_SIZE := 4096k
185 IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
186 SUPPORTED_DEVICES += glinet,gl-ar750s-nor
187 endef
188 TARGET_DEVICES += glinet_gl-ar750s-nor-nand
189
190 define Device/glinet_gl-ar750s-nor
191 $(Device/glinet_gl-ar750s-common)
192 DEVICE_VARIANT := NOR
193 SUPPORTED_DEVICES += gl-ar750s glinet,gl-ar750s glinet,gl-ar750s-nor-nand
194 endef
195 TARGET_DEVICES += glinet_gl-ar750s-nor
196
197 define Device/glinet_gl-e750
198 SOC := qca9531
199 DEVICE_VENDOR := GL.iNet
200 DEVICE_MODEL := GL-E750
201 DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca9887-ct kmod-usb2
202 SUPPORTED_DEVICES += gl-e750
203 KERNEL_SIZE := 4096k
204 IMAGE_SIZE := 131072k
205 PAGESIZE := 2048
206 VID_HDR_OFFSET := 2048
207 BLOCKSIZE := 128k
208 IMAGES += factory.img
209 IMAGE/factory.img := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi
210 IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
211 endef
212 TARGET_DEVICES += glinet_gl-e750
213
214 define Device/glinet_gl-xe300
215 SOC := qca9531
216 DEVICE_VENDOR := GL.iNet
217 DEVICE_MODEL := GL-XE300
218 DEVICE_PACKAGES := kmod-usb2 block-mount kmod-usb-serial-ch341
219 KERNEL_SIZE := 4096k
220 IMAGE_SIZE := 131072k
221 PAGESIZE := 2048
222 VID_HDR_OFFSET := 2048
223 BLOCKSIZE := 128k
224 IMAGES += factory.img
225 IMAGE/factory.img := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi
226 IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
227 endef
228 TARGET_DEVICES += glinet_gl-xe300
229
230 define Device/meraki_mr18
231 SOC := qca9557
232 DEVICE_VENDOR := Meraki
233 DEVICE_MODEL := MR18
234 DEVICE_PACKAGES := kmod-spi-gpio nu801
235 KERNEL_SIZE := 8m
236 BLOCKSIZE := 128k
237 PAGESIZE := 2048
238 LOADER_TYPE := bin
239 KERNEL := kernel-bin | append-dtb | lzma | loader-kernel | MerakiNAND MR18
240 KERNEL_INITRAMFS := $$(KERNEL)
241 IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
242 endef
243 TARGET_DEVICES += meraki_mr18
244
245 define Device/meraki_z1
246 SOC = ar9344
247 DEVICE_VENDOR := Meraki
248 DEVICE_MODEL := Z1
249 DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport kmod-owl-loader
250 KERNEL_SIZE := 8064k
251 BLOCKSIZE := 64k
252 PAGESIZE := 2048
253 KERNEL := kernel-bin | meraki-old-nand z1
254 IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
255 endef
256 TARGET_DEVICES += meraki_z1
257
258 # fake rootfs is mandatory, pad-offset 129 equals (2 * uimage_header + 0xff)
259 define Device/netgear_ath79_nand
260 DEVICE_VENDOR := NETGEAR
261 DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport
262 KERNEL_SIZE := 4096k
263 BLOCKSIZE := 128k
264 PAGESIZE := 2048
265 IMAGE_SIZE := 25600k
266 KERNEL := kernel-bin | append-dtb | lzma -d20 | \
267 pad-offset $$(KERNEL_SIZE) 129 | uImage lzma | \
268 append-string -e '\xff' | \
269 append-uImage-fakehdr filesystem $$(UIMAGE_MAGIC)
270 KERNEL_INITRAMFS := kernel-bin | append-dtb | lzma -d20 | uImage lzma
271 IMAGES := sysupgrade.bin factory.img
272 IMAGE/factory.img := append-kernel | append-ubi | netgear-dni | \
273 check-size
274 IMAGE/sysupgrade.bin := sysupgrade-tar | check-size | append-metadata
275 UBINIZE_OPTS := -E 5
276 endef
277
278 define Device/netgear_r6100
279 SOC := ar9344
280 DEVICE_MODEL := R6100
281 UIMAGE_MAGIC := 0x36303030
282 NETGEAR_BOARD_ID := R6100
283 NETGEAR_HW_ID := 29764434+0+128+128+2x2+2x2
284 $(Device/netgear_ath79_nand)
285 DEVICE_PACKAGES += kmod-ath10k-ct ath10k-firmware-qca988x-ct
286 endef
287 TARGET_DEVICES += netgear_r6100
288
289 define Device/netgear_wndr3700-v4
290 SOC := ar9344
291 DEVICE_MODEL := WNDR3700
292 DEVICE_VARIANT := v4
293 UIMAGE_MAGIC := 0x33373033
294 NETGEAR_BOARD_ID := WNDR3700v4
295 NETGEAR_HW_ID := 29763948+128+128
296 $(Device/netgear_ath79_nand)
297 endef
298 TARGET_DEVICES += netgear_wndr3700-v4
299
300 define Device/netgear_wndr4300
301 SOC := ar9344
302 DEVICE_MODEL := WNDR4300
303 UIMAGE_MAGIC := 0x33373033
304 NETGEAR_BOARD_ID := WNDR4300
305 NETGEAR_HW_ID := 29763948+0+128+128+2x2+3x3
306 $(Device/netgear_ath79_nand)
307 endef
308 TARGET_DEVICES += netgear_wndr4300
309
310 define Device/netgear_wndr4300sw
311 SOC := ar9344
312 DEVICE_MODEL := WNDR4300SW
313 UIMAGE_MAGIC := 0x33373033
314 NETGEAR_BOARD_ID := WNDR4300SW
315 NETGEAR_HW_ID := 29763948+0+128+128+2x2+3x3
316 $(Device/netgear_ath79_nand)
317 endef
318 TARGET_DEVICES += netgear_wndr4300sw
319
320 define Device/netgear_wndr4300tn
321 SOC := ar9344
322 DEVICE_MODEL := WNDR4300TN
323 UIMAGE_MAGIC := 0x33373033
324 NETGEAR_BOARD_ID := WNDR4300TN
325 NETGEAR_HW_ID := 29763948+0+128+128+2x2+3x3
326 $(Device/netgear_ath79_nand)
327 endef
328 TARGET_DEVICES += netgear_wndr4300tn
329
330 define Device/netgear_wndr4300-v2
331 SOC := qca9563
332 DEVICE_MODEL := WNDR4300
333 DEVICE_VARIANT := v2
334 UIMAGE_MAGIC := 0x27051956
335 NETGEAR_BOARD_ID := WNDR4500series
336 NETGEAR_HW_ID := 29764821+2+128+128+3x3+3x3+5508012175
337 $(Device/netgear_ath79_nand)
338 endef
339 TARGET_DEVICES += netgear_wndr4300-v2
340
341 define Device/netgear_wndr4500-v3
342 SOC := qca9563
343 DEVICE_MODEL := WNDR4500
344 DEVICE_VARIANT := v3
345 UIMAGE_MAGIC := 0x27051956
346 NETGEAR_BOARD_ID := WNDR4500series
347 NETGEAR_HW_ID := 29764821+2+128+128+3x3+3x3+5508012173
348 $(Device/netgear_ath79_nand)
349 endef
350 TARGET_DEVICES += netgear_wndr4500-v3
351
352 define Device/zte_mf286_common
353 SOC := qca9563
354 DEVICE_VENDOR := ZTE
355 DEVICE_PACKAGES := kmod-usb2 kmod-ath10k-ct
356 BLOCKSIZE := 128k
357 PAGESIZE := 2048
358 KERNEL_SIZE := 4096k
359 IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
360 endef
361
362 define Device/zte_mf286
363 $(Device/zte_mf286_common)
364 DEVICE_MODEL := MF286
365 DEVICE_PACKAGES += ath10k-firmware-qca988x-ct kmod-usb-net-qmi-wwan \
366 kmod-usb-serial-option uqmi
367 endef
368 TARGET_DEVICES += zte_mf286
369
370 define Device/zte_mf286a
371 $(Device/zte_mf286_common)
372 DEVICE_MODEL := MF286A
373 DEVICE_PACKAGES += ath10k-firmware-qca9888-ct kmod-usb-net-qmi-wwan \
374 kmod-usb-serial-option uqmi
375 endef
376 TARGET_DEVICES += zte_mf286a
377
378 define Device/zte_mf286r
379 $(Device/zte_mf286_common)
380 DEVICE_MODEL := MF286R
381 DEVICE_PACKAGES += ath10k-firmware-qca9888-ct kmod-usb-net-rndis kmod-usb-acm \
382 comgt-ncm
383 endef
384 TARGET_DEVICES += zte_mf286r
385
386 define Device/zyxel_nbg6716
387 SOC := qca9558
388 DEVICE_VENDOR := ZyXEL
389 DEVICE_MODEL := NBG6716
390 DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport kmod-ath10k-ct \
391 ath10k-firmware-qca988x-ct
392 RAS_BOARD := NBG6716
393 RAS_ROOTFS_SIZE := 29696k
394 RAS_VERSION := "OpenWrt Linux-$(LINUX_VERSION)"
395 KERNEL_SIZE := 4096k
396 BLOCKSIZE := 128k
397 PAGESIZE := 2048
398 LOADER_TYPE := bin
399 KERNEL := kernel-bin | append-dtb | lzma | loader-kernel | uImage none | \
400 zyxel-buildkerneljffs | check-size 4096k
401 IMAGES := sysupgrade.tar sysupgrade-4M-Kernel.bin factory.bin
402 IMAGE/sysupgrade.tar/squashfs := append-rootfs | pad-to $$$$(BLOCKSIZE) | \
403 sysupgrade-tar rootfs=$$$$@ | append-metadata
404 IMAGE/sysupgrade-4M-Kernel.bin/squashfs := append-kernel | \
405 pad-to $$$$(KERNEL_SIZE) | append-ubi | pad-to 263192576 | gzip
406 IMAGE/factory.bin := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi | \
407 zyxel-factory
408 UBINIZE_OPTS := -E 5
409 endef
410 TARGET_DEVICES += zyxel_nbg6716
411
412 define Device/zyxel_emg2926_q10a
413 $(Device/zyxel_nbg6716)
414 DEVICE_MODEL := EMG2926-Q10A
415 RAS_BOARD := AAVK-EMG2926Q10A
416 endef
417 TARGET_DEVICES += zyxel_emg2926_q10a