ar71xx: image: simplify Meraki MR16 device definition
[openwrt/openwrt.git] / target / linux / ar71xx / image / generic.mk
1 DEVICE_VARS += DAP_SIGNATURE NETGEAR_BOARD_ID NETGEAR_HW_ID NETGEAR_KERNEL_MAGIC ROOTFS_SIZE SEAMA_SIGNATURE
2
3 define Build/mkbuffaloimg
4 $(STAGING_DIR_HOST)/bin/mkbuffaloimg -B $(BOARDNAME) \
5 -R $$(($(subst k, * 1024,$(ROOTFS_SIZE)))) \
6 -K $$(($(subst k, * 1024,$(KERNEL_SIZE)))) \
7 -i $@ -o $@.new
8 mv $@.new $@
9 endef
10
11 define Build/mkwrggimg
12 $(STAGING_DIR_HOST)/bin/mkwrggimg -b \
13 -i $@ -o $@.imghdr -d /dev/mtdblock/1 \
14 -m $(BOARDNAME) -s $(DAP_SIGNATURE) \
15 -v LEDE -B $(REVISION)
16 mv $@.imghdr $@
17 endef
18
19 define Build/netgear-squashfs
20 rm -rf $@.fs $@.squashfs
21 mkdir -p $@.fs/image
22 cp $@ $@.fs/image/uImage
23 $(STAGING_DIR_HOST)/bin/mksquashfs-lzma \
24 $@.fs $@.squashfs \
25 -noappend -root-owned -be -b 65536 \
26 $(if $(SOURCE_DATE_EPOCH),-fixed-time $(SOURCE_DATE_EPOCH))
27
28 dd if=/dev/zero bs=1k count=1 >> $@.squashfs
29 mkimage \
30 -A mips -O linux -T filesystem -C none \
31 -M $(NETGEAR_KERNEL_MAGIC) \
32 -a 0xbf070000 -e 0xbf070000 \
33 -n 'MIPS OpenWrt Linux-$(LINUX_VERSION)' \
34 -d $@.squashfs $@
35 rm -rf $@.squashfs $@.fs
36 endef
37
38 define Build/netgear-uImage
39 $(call Build/uImage,$(1) -M $(NETGEAR_KERNEL_MAGIC))
40 endef
41
42 define Build/relocate-kernel
43 rm -rf $@.relocate
44 $(CP) ../../generic/image/relocate $@.relocate
45 $(MAKE) -j1 -C $@.relocate KERNEL_ADDR=$(KERNEL_LOADADDR) CROSS_COMPILE=$(TARGET_CROSS)
46 ( \
47 dd if=$@.relocate/loader.bin bs=32 conv=sync && \
48 perl -e '@s = stat("$@"); print pack("N", @s[7])' && \
49 cat "$@" \
50 ) > "$@.new"
51 mv "$@.new" "$@"
52 rm -rf $@.relocate
53 endef
54
55 define Build/seama
56 $(STAGING_DIR_HOST)/bin/seama -i $@ $(if $(1),$(1),-m "dev=/dev/mtdblock/1" -m "type=firmware")
57 mv $@.seama $@
58 endef
59
60 define Build/seama-seal
61 $(call Build/seama,-s $@.seama $(1))
62 endef
63
64 define Build/uImageHiWiFi
65 # Field ih_name needs to start with "tw150v1"
66 mkimage -A $(LINUX_KARCH) \
67 -O linux -T kernel \
68 -C $(1) -a $(KERNEL_LOADADDR) -e $(if $(KERNEL_ENTRY),$(KERNEL_ENTRY),$(KERNEL_LOADADDR)) \
69 -n 'tw150v1 $(call toupper,$(LINUX_KARCH)) LEDE Linux-$(LINUX_VERSION)' -d $@ $@.new
70 @mv $@.new $@
71 endef
72
73 define Build/wrgg-pad-rootfs
74 $(STAGING_DIR_HOST)/bin/padjffs2 $(IMAGE_ROOTFS) -c 64 >>$@
75 endef
76
77
78 define Device/ap531b0
79 DEVICE_TITLE := Rockeetech AP531B0
80 DEVICE_PACKAGES := kmod-usb-core kmod-usb2
81 BOARDNAME := AP531B0
82 IMAGE_SIZE := 16000k
83 MTDPARTS := spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,16000k(firmware),64k(art)ro
84 endef
85 TARGET_DEVICES += ap531b0
86
87 define Device/ap90q
88 DEVICE_TITLE := YunCore AP90Q
89 BOARDNAME := AP90Q
90 IMAGE_SIZE := 16000k
91 MTDPARTS := spi0.0:256k(u-boot)ro,64k(u-boot-env),16000k(firmware),64k(art)ro
92 endef
93 TARGET_DEVICES += ap90q
94
95 define Device/arduino-yun
96 DEVICE_TITLE := Arduino Yun
97 DEVICE_PACKAGES := kmod-usb-core kmod-usb2
98 BOARDNAME := Yun
99 IMAGE_SIZE := 15936k
100 CONSOLE = ttyATH0,250000
101 MTDPARTS := spi0.0:256k(u-boot)ro,64k(u-boot-env),15936k(firmware),64k(nvram),64k(art)ro
102 endef
103 TARGET_DEVICES += arduino-yun
104
105 define Device/bsb
106 DEVICE_TITLE := Smart Electronics Black Swift board
107 DEVICE_PACKAGES := kmod-usb-core kmod-usb2
108 BOARDNAME := BSB
109 IMAGE_SIZE := 16000k
110 CONSOLE := ttyATH0,115200
111 MTDPARTS := spi0.0:128k(u-boot)ro,64k(u-boot-env)ro,16128k(firmware),64k(art)ro
112 endef
113 TARGET_DEVICES += bsb
114
115 define Device/carambola2
116 DEVICE_TITLE := 8devices Carambola2
117 DEVICE_PACKAGES := kmod-usb-core kmod-usb2
118 BOARDNAME := CARAMBOLA2
119 IMAGE_SIZE := 16000k
120 CONSOLE := ttyATH0,115200
121 MTDPARTS := spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,16000k(firmware),64k(art)ro
122 endef
123 TARGET_DEVICES += carambola2
124
125 define Device/cf-e316n-v2
126 DEVICE_TITLE := COMFAST CF-E316N v2
127 BOARDNAME := CF-E316N-V2
128 IMAGE_SIZE := 16192k
129 MTDPARTS := spi0.0:64k(u-boot)ro,64k(art)ro,16192k(firmware),64k(art-backup)ro
130 endef
131 TARGET_DEVICES += cf-e316n-v2
132
133 define Device/cf-e320n-v2
134 $(Device/cf-e316n-v2)
135 DEVICE_TITLE := COMFAST CF-E320N v2
136 DEVICE_PACKAGES := kmod-usb-core kmod-usb2
137 BOARDNAME := CF-E320N-V2
138 endef
139 TARGET_DEVICES += cf-e320n-v2
140
141 define Device/cf-e380ac-v1
142 DEVICE_TITLE := COMFAST CF-E380AC v1
143 DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-ath10k ath10k-firmware-qca988x
144 BOARDNAME := CF-E380AC-V1
145 IMAGE_SIZE := 16128k
146 MTDPARTS := spi0.0:128k(u-boot)ro,64k(art)ro,16128k(firmware),64k(art-backup)ro
147 endef
148 TARGET_DEVICES += cf-e380ac-v1
149
150 define Device/cf-e380ac-v2
151 $(Device/cf-e380ac-v1)
152 DEVICE_TITLE := COMFAST CF-E380AC v2
153 BOARDNAME := CF-E380AC-V2
154 IMAGE_SIZE := 16000k
155 MTDPARTS := spi0.0:256k(u-boot)ro,64k(art)ro,16000k(firmware),64k(art-backup)ro
156 endef
157 TARGET_DEVICES += cf-e380ac-v2
158
159 define Device/cf-e520n
160 DEVICE_TITLE := COMFAST CF-E520N
161 DEVICE_PACKAGES := kmod-usb-core kmod-usb2
162 BOARDNAME := CF-E520N
163 IMAGE_SIZE := 8000k
164 MTDPARTS := spi0.0:64k(u-boot)ro,64k(art)ro,8000k(firmware),64k(art-backup)ro
165 endef
166 TARGET_DEVICES += cf-e520n
167
168 define Device/cf-e530n
169 $(Device/cf-e520n)
170 DEVICE_TITLE := COMFAST CF-E530N
171 BOARDNAME := CF-E530N
172 endef
173 TARGET_DEVICES += cf-e530n
174
175 define Device/cpe505n
176 DEVICE_TITLE := P&W CPE505N
177 BOARDNAME := CPE505N
178 IMAGE_SIZE := 16000k
179 MTDPARTS := spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,16000k(firmware),64k(art)ro
180 endef
181 TARGET_DEVICES += cpe505n
182
183 define Device/cpe830
184 $(Device/ap90q)
185 DEVICE_TITLE := YunCore CPE830
186 DEVICE_PACKAGES := rssileds
187 BOARDNAME := CPE830
188 endef
189 TARGET_DEVICES += cpe830
190
191 define Device/cpe870
192 DEVICE_TITLE := YunCore CPE870
193 DEVICE_PACKAGES := rssileds
194 BOARDNAME := CPE870
195 IMAGE_SIZE := 7936k
196 MTDPARTS := spi0.0:64k(u-boot)ro,64k(u-boot-env),7936k(firmware),64k(config)ro,64k(art)ro
197 endef
198 TARGET_DEVICES += cpe870
199
200 define Device/dragino2
201 BOARDNAME := DRAGINO2
202 CONSOLE := ttyATH0,115200
203 DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
204 DEVICE_TITLE := Dragino 2 (MS14)
205 IMAGE_SIZE := 16000k
206 MTDPARTS := spi0.0:256k(u-boot)ro,16000k(firmware),64k(config)ro,64k(art)ro
207 endef
208 TARGET_DEVICES += dragino2
209
210 define Device/weio
211 DEVICE_TITLE := WeIO
212 DEVICE_PACKAGES := kmod-usb-core kmod-usb2
213 BOARDNAME := WEIO
214 IMAGE_SIZE := 16000k
215 CONSOLE := ttyATH0,115200
216 MTDPARTS := spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,16000k(firmware),64k(art)ro
217 endef
218 TARGET_DEVICES += weio
219
220 define Device/gl-ar150
221 DEVICE_TITLE := GL.iNet GL-AR150
222 DEVICE_PACKAGES := kmod-usb-core kmod-usb2
223 BOARDNAME := GL-AR150
224 IMAGE_SIZE := 16000k
225 CONSOLE := ttyATH0,115200
226 MTDPARTS := spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,16000k(firmware),64k(art)ro
227 endef
228 TARGET_DEVICES += gl-ar150
229
230 define Device/gl-ar300
231 DEVICE_TITLE := GL.iNet GL-AR300
232 DEVICE_PACKAGES := kmod-usb-core kmod-usb2
233 BOARDNAME := GL-AR300
234 IMAGE_SIZE := 16000k
235 MTDPARTS := spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,16000k(firmware),64k(art)ro
236 endef
237 TARGET_DEVICES += gl-ar300
238
239 define Device/gl-ar300m
240 DEVICE_TITLE := GL.iNet GL-AR300M
241 DEVICE_PACKAGES := kmod-usb-core kmod-usb2
242 BOARDNAME := GL-AR300M
243 IMAGE_SIZE := 16000k
244 MTDPARTS := spi0.0:256k(u-boot)ro,64k(u-boot-env),16000k(firmware),64k(art)ro
245 endef
246 TARGET_DEVICES += gl-ar300m
247
248 define Device/gl-domino
249 DEVICE_TITLE := GL.iNet Domino Pi
250 DEVICE_PACKAGES := kmod-usb-core kmod-usb2
251 BOARDNAME := DOMINO
252 IMAGE_SIZE := 16000k
253 CONSOLE := ttyATH0,115200
254 MTDPARTS := spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,16000k(firmware),64k(art)ro
255 endef
256 TARGET_DEVICES += gl-domino
257
258 define Device/gl-mifi
259 DEVICE_TITLE := GL.iNet GL-MiFi
260 DEVICE_PACKAGES := kmod-usb-core kmod-usb2
261 BOARDNAME := GL-MIFI
262 IMAGE_SIZE := 16000k
263 CONSOLE := ttyATH0,115200
264 MTDPARTS := spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,16000k(firmware),64k(art)ro
265 endef
266 TARGET_DEVICES += gl-mifi
267
268 define Device/lima
269 DEVICE_TITLE := 8devices Lima
270 DEVICE_PACKAGES := kmod-usb-core kmod-usb2
271 BOARDNAME := LIMA
272 IMAGE_SIZE := 15616k
273 MTDPARTS := spi0.0:256k(u-boot)ro,256k(u-boot-env)ro,256k(art)ro,-(firmware)
274 endef
275 TARGET_DEVICES += lima
276
277 define Device/mr12
278 DEVICE_TITLE := Meraki MR12
279 DEVICE_PACKAGES := kmod-spi-gpio
280 BOARDNAME := MR12
281 ROOTFS_SIZE := 13440k
282 IMAGE_SIZE := 15680k
283 MTDPARTS := spi0.0:256k(u-boot)ro,256k(u-boot-env)ro,13440k(rootfs),2240k(kernel),64k(mac),128k(art)ro,15680k@0x80000(firmware)
284 IMAGE/kernel.bin := append-kernel
285 IMAGE/rootfs.bin := append-rootfs | pad-rootfs
286 IMAGE/sysupgrade.bin := append-rootfs | pad-rootfs | pad-to $$$$(ROOTFS_SIZE) | append-kernel | check-size $$$$(IMAGE_SIZE)
287 IMAGES := kernel.bin rootfs.bin sysupgrade.bin
288 endef
289
290 define Device/mr16
291 $(Device/mr12)
292 DEVICE_TITLE := Meraki MR16
293 BOARDNAME := MR16
294 endef
295 TARGET_DEVICES += mr12 mr16
296
297 define Device/dr344
298 DEVICE_TITLE := Wallys DR344
299 BOARDNAME := DR344
300 KERNEL_SIZE := 1408k
301 ROOTFS_SIZE := 6336k
302 IMAGE_SIZE := 7744k
303 MTDPARTS := spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,6336k(rootfs),1408k(kernel),64k(nvram),64k(art)ro,7744k@0x50000(firmware)
304 IMAGE/sysupgrade.bin := append-rootfs | pad-rootfs | pad-to $$$$(ROOTFS_SIZE) | append-kernel | check-size $$$$(IMAGE_SIZE)
305 endef
306 TARGET_DEVICES += dr344
307
308 define Device/dr531
309 DEVICE_TITLE := Wallys DR531
310 DEVICE_PACKAGES := kmod-usb-core kmod-usb2
311 BOARDNAME := DR531
312 IMAGE_SIZE := 7808k
313 MTDPARTS := spi0.0:192k(u-boot)ro,64k(u-boot-env),64k(partition-table)ro,7808k(firmware),64k(art)ro
314 endef
315 TARGET_DEVICES += dr531
316
317 define Device/wndr3700
318 DEVICE_TITLE := NETGEAR WNDR3700
319 DEVICE_PACKAGES := kmod-usb-core kmod-usb-ohci kmod-usb2 kmod-usb-ledtrig-usbport kmod-leds-wndr3700-usb
320 BOARDNAME := WNDR3700
321 NETGEAR_KERNEL_MAGIC := 0x33373030
322 NETGEAR_BOARD_ID := WNDR3700
323 IMAGE_SIZE := 7680k
324 MTDPARTS := spi0.0:320k(u-boot)ro,128k(u-boot-env)ro,7680k(firmware),64k(art)ro
325 IMAGES := sysupgrade.bin factory.img factory-NA.img
326 KERNEL := kernel-bin | patch-cmdline | lzma -d20 | netgear-uImage lzma
327 IMAGE/default := append-kernel | pad-to $$$$(BLOCKSIZE) | netgear-squashfs | append-rootfs | pad-rootfs
328 IMAGE/sysupgrade.bin := $$(IMAGE/default) | check-size $$$$(IMAGE_SIZE)
329 IMAGE/factory.img := $$(IMAGE/default) | netgear-dni | check-size $$$$(IMAGE_SIZE)
330 IMAGE/factory-NA.img := $$(IMAGE/default) | netgear-dni NA | check-size $$$$(IMAGE_SIZE)
331 endef
332
333 define Device/wndr3700v2
334 $(Device/wndr3700)
335 DEVICE_TITLE := NETGEAR WNDR3700 v2
336 NETGEAR_BOARD_ID := WNDR3700v2
337 NETGEAR_KERNEL_MAGIC := 0x33373031
338 NETGEAR_HW_ID := 29763654+16+64
339 IMAGE_SIZE := 15872k
340 MTDPARTS := spi0.0:320k(u-boot)ro,128k(u-boot-env)ro,15872k(firmware),64k(art)ro
341 IMAGES := sysupgrade.bin factory.img
342 endef
343
344 define Device/wndr3800
345 $(Device/wndr3700v2)
346 DEVICE_TITLE := NETGEAR WNDR3800
347 NETGEAR_BOARD_ID := WNDR3800
348 NETGEAR_HW_ID := 29763654+16+128
349 endef
350
351 define Device/wndr3800ch
352 $(Device/wndr3800)
353 DEVICE_TITLE := NETGEAR WNDR3800 (Ch)
354 NETGEAR_BOARD_ID := WNDR3800CH
355 endef
356
357 define Device/wndrmac
358 $(Device/wndr3700v2)
359 DEVICE_TITLE := NETGEAR WNDRMAC
360 NETGEAR_BOARD_ID := WNDRMAC
361 endef
362
363 define Device/wndrmacv2
364 $(Device/wndr3800)
365 DEVICE_TITLE := NETGEAR WNDRMAC v2
366 NETGEAR_BOARD_ID := WNDRMACv2
367 endef
368 TARGET_DEVICES += wndr3700 wndr3700v2 wndr3800 wndr3800ch wndrmac wndrmacv2
369
370 define Device/cap324
371 DEVICE_TITLE := PowerCloud CAP324 Cloud AP
372 BOARDNAME := CAP324
373 DEVICE_PROFILE := CAP324
374 IMAGE_SIZE := 15296k
375 MTDPARTS := spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,15296k(firmware),640k(certs),64k(nvram),64k(art)ro
376 endef
377 TARGET_DEVICES += cap324
378
379 define Device/cap324-nocloud
380 DEVICE_TITLE := PowerCloud CAP324 Cloud AP (No-Cloud)
381 BOARDNAME := CAP324
382 DEVICE_PROFILE := CAP324
383 IMAGE_SIZE := 16000k
384 MTDPARTS := spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,16000k(firmware),64k(art)ro
385 endef
386 TARGET_DEVICES += cap324-nocloud
387
388 define Device/cr3000
389 DEVICE_TITLE := PowerCloud CR3000 Cloud Router
390 BOARDNAME := CR3000
391 DEVICE_PROFILE := CR3000
392 IMAGE_SIZE := 7104k
393 MTDPARTS := spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,7104k(firmware),640k(certs),64k(nvram),64k(art)ro
394 endef
395 TARGET_DEVICES += cr3000
396
397 define Device/cr3000-nocloud
398 DEVICE_TITLE := PowerCloud CR3000 (No-Cloud)
399 BOARDNAME := CR3000
400 DEVICE_PROFILE := CR3000
401 IMAGE_SIZE := 7808k
402 MTDPARTS := spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,7808k(firmware),64k(art)ro
403 endef
404 TARGET_DEVICES += cr3000-nocloud
405
406 define Device/cr5000
407 DEVICE_TITLE := PowerCloud CR5000 Cloud Router
408 DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport kmod-usb-core
409 BOARDNAME := CR5000
410 DEVICE_PROFILE := CR5000
411 IMAGE_SIZE := 7104k
412 MTDPARTS := spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,7104k(firmware),640k(certs),64k(nvram),64k(art)ro
413 endef
414 TARGET_DEVICES += cr5000
415
416 define Device/cr5000-nocloud
417 DEVICE_TITLE := PowerCloud CR5000 (No-Cloud)
418 DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport kmod-usb-core
419 BOARDNAME := CR5000
420 DEVICE_PROFILE := CR5000
421 IMAGE_SIZE := 7808k
422 MTDPARTS := spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,7808k(firmware),64k(art)ro
423 endef
424 TARGET_DEVICES += cr5000-nocloud
425
426 define Device/pqi-air-pen
427 DEVICE_TITLE := PQI Air Pen
428 DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-storage
429 BOARDNAME := PQI-AIR-PEN
430 IMAGE_SIZE := 7744k
431 CONSOLE := ttyATH0,115200
432 MTDPARTS := spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,64k(art)ro,64k(NVRAM)ro,7680k(firmware),64k(CONF)
433 endef
434 TARGET_DEVICES += pqi-air-pen
435
436 define Device/antminer-s1
437 $(Device/tplink-8mlzma)
438 DEVICE_TITLE := Antminer-S1
439 DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-crypto-manager kmod-i2c-gpio-custom kmod-usb-hid
440 BOARDNAME := ANTMINER-S1
441 DEVICE_PROFILE := ANTMINERS1
442 TPLINK_HWID := 0x04440101
443 CONSOLE := ttyATH0,115200
444 endef
445
446 define Device/antminer-s3
447 $(Device/tplink-8mlzma)
448 DEVICE_TITLE := Antminer-S3
449 DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-crypto-manager kmod-i2c-gpio-custom kmod-usb-hid
450 BOARDNAME := ANTMINER-S3
451 DEVICE_PROFILE := ANTMINERS3
452 TPLINK_HWID := 0x04440301
453 CONSOLE := ttyATH0,115200
454 endef
455
456 define Device/antrouter-r1
457 $(Device/tplink-8mlzma)
458 DEVICE_TITLE := Antrouter-R1
459 DEVICE_PACKAGES := kmod-usb-core kmod-usb2
460 BOARDNAME := ANTROUTER-R1
461 DEVICE_PROFILE := ANTROUTERR1
462 TPLINK_HWID := 0x44440101
463 CONSOLE := ttyATH0,115200
464 endef
465
466 define Device/el-m150
467 $(Device/tplink-8mlzma)
468 DEVICE_TITLE := EasyLink EL-M150
469 DEVICE_PACKAGES := kmod-usb-core kmod-usb2
470 BOARDNAME := EL-M150
471 DEVICE_PROFILE := ELM150
472 TPLINK_HWID := 0x01500101
473 CONSOLE := ttyATH0,115200
474 endef
475
476 define Device/el-mini
477 $(Device/tplink-8mlzma)
478 DEVICE_TITLE := EasyLink EL-MINI
479 DEVICE_PACKAGES := kmod-usb-core kmod-usb2
480 BOARDNAME := EL-MINI
481 DEVICE_PROFILE := ELMINI
482 TPLINK_HWID := 0x01530001
483 CONSOLE := ttyATH0,115200
484 endef
485 TARGET_DEVICES += antminer-s1 antminer-s3 antrouter-r1 el-m150 el-mini
486
487 define Device/gl-inet-6408A-v1
488 $(Device/tplink-8mlzma)
489 DEVICE_TITLE := GL.iNet 6408
490 DEVICE_PACKAGES := kmod-usb-core kmod-usb2
491 BOARDNAME := GL-INET
492 DEVICE_PROFILE := GLINET
493 TPLINK_HWID := 0x08000001
494 CONSOLE := ttyATH0,115200
495 endef
496
497 define Device/gl-inet-6416A-v1
498 $(Device/tplink-16mlzma)
499 DEVICE_TITLE := GL.iNet 6416
500 DEVICE_PACKAGES := kmod-usb-core kmod-usb2
501 BOARDNAME := GL-INET
502 DEVICE_PROFILE := GLINET
503 TPLINK_HWID := 0x08000001
504 CONSOLE := ttyATH0,115200
505 endef
506 TARGET_DEVICES += gl-inet-6408A-v1 gl-inet-6416A-v1
507
508 define Device/jwap230
509 DEVICE_TITLE := jjPlus JWAP230
510 DEVICE_PACKAGES := kmod-usb-core kmod-usb2
511 BOARDNAME := JWAP230
512 IMAGE_SIZE := 16000k
513 MTDPARTS := spi0.0:256k(u-boot)ro,64k(u-boot-env),16000k(firmware),64k(art)ro
514 endef
515 TARGET_DEVICES += jwap230
516
517 define Device/r602n
518 DEVICE_TITLE := P&W R602N
519 DEVICE_PACKAGES := kmod-usb-core kmod-usb2
520 BOARDNAME := R602N
521 IMAGE_SIZE := 16000k
522 MTDPARTS := spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,16000k(firmware),64k(art)ro
523 endef
524 TARGET_DEVICES += r602n
525
526 define Device/rnx-n360rt
527 $(Device/tplink-4m)
528 DEVICE_TITLE := Rosewill RNX-N360RT
529 BOARDNAME := TL-WR941ND
530 DEVICE_PROFILE := RNXN360RT
531 TPLINK_HWID := 0x09410002
532 TPLINK_HWREV := 0x00420001
533 endef
534 TARGET_DEVICES += rnx-n360rt
535
536 define Device/mc-mac1200r
537 $(Device/tplink-8mlzma)
538 DEVICE_TITLE := Mercury MAC1200R
539 DEVICE_PACKAGES := kmod-ath10k ath10k-firmware-qca988x
540 BOARDNAME := MC-MAC1200R
541 DEVICE_PROFILE := MAC1200R
542 TPLINK_HWID := 0x12000001
543 endef
544 TARGET_DEVICES += mc-mac1200r
545
546 define Device/minibox-v1
547 $(Device/tplink-16mlzma)
548 DEVICE_TITLE := Gainstrong MiniBox V1.0
549 DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
550 BOARDNAME := MINIBOX-V1
551 DEVICE_PROFILE := MINIBOXV1
552 TPLINK_HWID := 0x3C000201
553 CONSOLE := ttyATH0,115200
554 endef
555 TARGET_DEVICES += minibox-v1
556
557 define Device/omy-g1
558 $(Device/tplink-16mlzma)
559 DEVICE_TITLE := OMYlink OMY-G1
560 DEVICE_PACKAGES := kmod-usb-core kmod-usb2
561 BOARDNAME := OMY-G1
562 DEVICE_PROFILE := OMYG1
563 TPLINK_HWID := 0x06660101
564 endef
565
566 define Device/omy-x1
567 $(Device/tplink-8mlzma)
568 DEVICE_TITLE := OMYlink OMY-X1
569 BOARDNAME := OMY-X1
570 DEVICE_PROFILE := OMYX1
571 TPLINK_HWID := 0x06660201
572 endef
573 TARGET_DEVICES += omy-g1 omy-x1
574
575 define Device/onion-omega
576 $(Device/tplink-16mlzma)
577 DEVICE_TITLE := Onion Omega
578 DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-storage kmod-i2c-core kmod-i2c-gpio-custom kmod-spi-bitbang kmod-spi-dev kmod-spi-gpio kmod-spi-gpio-custom kmod-usb-serial
579 BOARDNAME := ONION-OMEGA
580 DEVICE_PROFILE := OMEGA
581 TPLINK_HWID := 0x04700001
582 CONSOLE := ttyATH0,115200
583 endef
584 TARGET_DEVICES += onion-omega
585
586 define Device/sc1750
587 DEVICE_TITLE := Abicom SC1750
588 DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
589 BOARDNAME := SC1750
590 IMAGE_SIZE := 15744k
591 MTDPARTS := spi0.0:256k(u-boot)ro,64k(u-boot-env),15744k(firmware),128k(APConfig),128k(kplog),64k(ART)
592 endef
593 TARGET_DEVICES += sc1750
594
595 define Device/sc300m
596 DEVICE_TITLE := Abicom SC300M
597 DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
598 BOARDNAME := SC300M
599 IMAGE_SIZE := 15744k
600 MTDPARTS := spi0.0:256k(u-boot)ro,64k(u-boot-env),15744k(firmware),128k(APConfig),128k(kplog),64k(ART)
601 endef
602 TARGET_DEVICES += sc300m
603
604 define Device/sc450
605 DEVICE_TITLE := Abicom SC450
606 DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
607 BOARDNAME := SC450
608 IMAGE_SIZE := 15744k
609 MTDPARTS := spi0.0:256k(u-boot)ro,64k(u-boot-env),15744k(firmware),128k(APConfig),128k(kplog),64k(ART)
610 endef
611 TARGET_DEVICES += sc450
612
613 define Device/smart-300
614 $(Device/tplink-8mlzma)
615 DEVICE_TITLE := NC-LINK SMART-300
616 BOARDNAME := SMART-300
617 DEVICE_PROFILE := SMART-300
618 TPLINK_HWID := 0x93410001
619 endef
620 TARGET_DEVICES += smart-300
621
622 define Device/som9331
623 $(Device/tplink-8mlzma)
624 DEVICE_TITLE := OpenEmbed SOM9331
625 DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-storage kmod-i2c-core kmod-i2c-gpio-custom kmod-spi-bitbang kmod-spi-dev kmod-spi-gpio kmod-spi-gpio-custom kmod-usb-serial
626 BOARDNAME := SOM9331
627 DEVICE_PROFILE := SOM9331
628 TPLINK_HWID := 0x04800054
629 CONSOLE := ttyATH0,115200
630 endef
631 TARGET_DEVICES += som9331
632
633 define Device/sr3200
634 DEVICE_TITLE := YunCore SR3200
635 DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-ath10k ath10k-firmware-qca988x
636 BOARDNAME := SR3200
637 IMAGE_SIZE := 16000k
638 MTDPARTS := spi0.0:256k(u-boot)ro,64k(u-boot-env),16000k(firmware),64k(art)ro
639 endef
640 TARGET_DEVICES += sr3200
641
642 define Device/xd3200
643 $(Device/sr3200)
644 DEVICE_TITLE := YunCore XD3200
645 DEVICE_PACKAGES := kmod-ath10k ath10k-firmware-qca988x
646 BOARDNAME := XD3200
647 endef
648 TARGET_DEVICES += xd3200
649
650 define Device/tellstick-znet-lite
651 $(Device/tplink-16mlzma)
652 DEVICE_TITLE := TellStick ZNet Lite
653 DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-acm kmod-usb-serial kmod-usb-serial-pl2303
654 BOARDNAME := TELLSTICK-ZNET-LITE
655 DEVICE_PROFILE := TELLSTICKZNETLITE
656 TPLINK_HWID := 0x00726001
657 CONSOLE := ttyATH0,115200
658 endef
659 TARGET_DEVICES += tellstick-znet-lite
660
661 define Device/oolite
662 $(Device/tplink-16mlzma)
663 DEVICE_TITLE := Gainstrong OOLITE
664 DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
665 BOARDNAME := GS-OOLITE
666 DEVICE_PROFILE := OOLITE
667 TPLINK_HWID := 0x3C000101
668 CONSOLE := ttyATH0,115200
669 endef
670 TARGET_DEVICES += oolite
671
672 define Device/NBG6616
673 DEVICE_TITLE := ZyXEL NBG6616
674 DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport kmod-usb-storage kmod-rtc-pcf8563 kmod-ath10k ath10k-firmware-qca988x
675 BOARDNAME := NBG6616
676 KERNEL_SIZE := 2048k
677 IMAGE_SIZE := 15323k
678 MTDPARTS := spi0.0:192k(u-boot)ro,64k(env)ro,64k(RFdata)ro,384k(zyxel_rfsd),384k(romd),64k(header),2048k(kernel),13184k(rootfs),15232k@0x120000(firmware)
679 CMDLINE += mem=128M
680 IMAGES := sysupgrade.bin
681 KERNEL := kernel-bin | patch-cmdline | lzma | uImage lzma | jffs2 boot/vmlinux.lzma.uImage
682 IMAGE/sysupgrade.bin := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE)
683 # We cannot currently build a factory image. It is the sysupgrade image
684 # prefixed with a header (which is actually written into the MTD device).
685 # The header is 2kiB and is filled with 0xff. The format seems to be:
686 # 2 bytes: 0x0000
687 # 2 bytes: checksum of the data partition (big endian)
688 # 4 bytes: length of the contained image file (big endian)
689 # 32 bytes: Firmware Version string (NUL terminated, 0xff padded)
690 # 2 bytes: 0x0000
691 # 2 bytes: checksum over the header partition (big endian)
692 # 32 bytes: Model (e.g. "NBG6616", NUL termiated, 0xff padded)
693 # rest: 0xff padding
694 #
695 # The checksums are calculated by adding up all bytes and if a 16bit
696 # overflow occurs, one is added and the sum is masked to 16 bit:
697 # csum = csum + databyte; if (csum > 0xffff) { csum += 1; csum &= 0xffff };
698 # Should the file have an odd number of bytes then the byte len-0x800 is
699 # used additionally.
700 # The checksum for the header is calcualted over the first 2048 bytes with
701 # the firmware checksum as the placeholder during calculation.
702 #
703 # The header is padded with 0xff to the erase block size of the device.
704 endef
705 TARGET_DEVICES += NBG6616
706
707 define Device/c-55
708 DEVICE_TITLE := AirTight Networks C-55
709 DEVICE_PACKAGES := kmod-ath9k
710 BOARDNAME := C-55
711 KERNEL_SIZE := 2048k
712 IMAGE_SIZE := 15872k
713 MTDPARTS := spi0.0:256k(u-boot)ro,128k(u-boot-env)ro,2048k(kernel),13824k(rootfs),13824k(opt)ro,2624k(failsafe)ro,64k(art)ro,15872k@0x60000(firmware)
714 IMAGE/sysupgrade.bin := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE)
715 endef
716 TARGET_DEVICES += c-55
717
718 define Device/hiwifi-hc6361
719 DEVICE_TITLE := HiWiFi HC6361
720 DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-storage \
721 kmod-fs-ext4 kmod-nls-iso8859-1 e2fsprogs
722 BOARDNAME := HiWiFi-HC6361
723 DEVICE_PROFILE := HIWIFI_HC6361
724 IMAGE_SIZE := 16128k
725 KERNEL := kernel-bin | patch-cmdline | lzma | uImageHiWiFi lzma
726 CONSOLE := ttyATH0,115200
727 MTDPARTS := spi0.0:64k(u-boot)ro,64k(bdinfo)ro,16128k(firmware),64k(backup)ro,64k(art)ro
728 endef
729 TARGET_DEVICES += hiwifi-hc6361
730
731 define Device/seama
732 LOADER_TYPE := bin
733 BLOCKSIZE := 64k
734 KERNEL := kernel-bin | patch-cmdline | relocate-kernel | lzma
735 KERNEL_INITRAMFS := kernel-bin | patch-cmdline | lzma | seama
736 KERNEL_INITRAMFS_SUFFIX = $$(KERNEL_SUFFIX).seama
737 IMAGES := sysupgrade.bin factory.bin
738
739 # 64 bytes offset:
740 # - 28 bytes seama_header
741 # - 36 bytes of META data (4-bytes aligned)
742 IMAGE/default := append-kernel | pad-offset $$$$(BLOCKSIZE) 64 | append-rootfs
743 IMAGE/sysupgrade.bin := \
744 $$(IMAGE/default) | seama | pad-rootfs | \
745 check-size $$$$(IMAGE_SIZE)
746 IMAGE/factory.bin := \
747 $$(IMAGE/default) | seama | pad-rootfs | \
748 seama-seal -m "signature=$$$$(SEAMA_SIGNATURE)" | \
749 check-size $$$$(IMAGE_SIZE)
750 SEAMA_SIGNATURE :=
751 endef
752
753 define Device/dir-869-a1
754 $(Device/seama)
755 DEVICE_TITLE := D-Link DIR-869 rev. A1
756 DEVICE_PACKAGES := kmod-ath10k ath10k-firmware-qca988x
757 BOARDNAME := DIR-869-A1
758 IMAGE_SIZE := 15872k
759 MTDPARTS := spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,64k(devdata)ro,64k(devconf)ro,15872k(firmware),64k(radiocfg)ro
760 SEAMA_SIGNATURE := wrgac54_dlink.2015_dir869
761 IMAGE/factory.bin := \
762 $$(IMAGE/default) | pad-rootfs -x 64 | \
763 seama | seama-seal -m "signature=$$$$(SEAMA_SIGNATURE)" | \
764 check-size $$$$(IMAGE_SIZE)
765 endef
766
767 define Device/mynet-n600
768 $(Device/seama)
769 DEVICE_TITLE := Western Digital My Net N600
770 DEVICE_PACKAGES := kmod-usb-core kmod-usb2
771 BOARDNAME := MYNET-N600
772 IMAGE_SIZE := 15808k
773 MTDPARTS := spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,64k(devdata)ro,64k(devconf)ro,15872k(firmware),64k(radiocfg)ro
774 SEAMA_SIGNATURE := wrgnd16_wd_db600
775 endef
776
777 define Device/mynet-n750
778 $(Device/seama)
779 DEVICE_TITLE := Western Digital My Net N750
780 DEVICE_PACKAGES := kmod-usb-core kmod-usb2
781 BOARDNAME := MYNET-N750
782 IMAGE_SIZE := 15808k
783 MTDPARTS := spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,64k(devdata)ro,64k(devconf)ro,15872k(firmware),64k(radiocfg)ro
784 SEAMA_SIGNATURE := wrgnd13_wd_av
785 endef
786
787 define Device/qihoo-c301
788 $(Device/seama)
789 DEVICE_TITLE := Qihoo C301
790 DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport kmod-ath10k ath10k-firmware-qca988x
791 BOARDNAME := QIHOO-C301
792 IMAGE_SIZE := 15744k
793 MTDPARTS := spi0.0:256k(u-boot)ro,64k(u-boot-env),64k(devdata),64k(devconf),15744k(firmware),64k(warm_start),64k(action_image_config),64k(radiocfg)ro;spi0.1:15360k(upgrade2),1024k(privatedata)
794 SEAMA_SIGNATURE := wrgac26_qihoo360_360rg
795 endef
796 TARGET_DEVICES += dir-869-a1 mynet-n600 mynet-n750 qihoo-c301
797
798 define Device/dap-2695-a1
799 DEVICE_TITLE := D-Link DAP-2695 rev. A1
800 DEVICE_PACKAGES := ath10k-firmware-qca988x kmod-ath10k
801 BOARDNAME := DAP-2695-A1
802 IMAGES := factory.img sysupgrade.bin
803 IMAGE_SIZE := 15360k
804 IMAGE/factory.img := append-kernel | pad-offset 65536 160 | append-rootfs | wrgg-pad-rootfs | mkwrggimg | check-size $$$$(IMAGE_SIZE)
805 IMAGE/sysupgrade.bin := append-kernel | pad-offset 65536 160 | mkwrggimg | append-rootfs | wrgg-pad-rootfs | check-size $$$$(IMAGE_SIZE)
806 KERNEL := kernel-bin | patch-cmdline | relocate-kernel | lzma
807 KERNEL_INITRAMFS := $$(KERNEL) | mkwrggimg
808 MTDPARTS := spi0.0:256k(bootloader)ro,64k(bdcfg)ro,64k(rgdb)ro,64k(langpack)ro,15360k(firmware),448k(captival)ro,64k(certificate)ro,64k(radiocfg)ro
809 DAP_SIGNATURE := wapac02_dkbs_dap2695
810 endef
811 TARGET_DEVICES += dap-2695-a1
812
813 define Device/bhr-4grv2
814 DEVICE_TITLE := Buffalo BHR-4GRV2
815 BOARDNAME := BHR-4GRV2
816 ROOTFS_SIZE := 14528k
817 KERNEL_SIZE := 1472k
818 IMAGE_SIZE := 16000k
819 MTDPARTS := spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,14528k(rootfs),1472k(kernel),64k(art)ro,16000k@0x50000(firmware)
820 IMAGES := sysupgrade.bin factory.bin
821 IMAGE/sysupgrade.bin := append-rootfs | pad-rootfs | pad-to $$$$(ROOTFS_SIZE) | append-kernel | check-size $$$$(IMAGE_SIZE)
822 IMAGE/factory.bin := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-rootfs | pad-rootfs | mkbuffaloimg
823 endef
824 TARGET_DEVICES += bhr-4grv2
825
826 define Device/wpj-16m
827 DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
828 MTDPARTS := spi0.0:192k(u-boot)ro,16128k(firmware),64k(art)ro
829 IMAGE_SIZE := 16128k
830 endef
831
832 define Device/wpj342
833 $(Device/wpj-16m)
834 DEVICE_TITLE := Compex WPJ342 (16MB flash)
835 BOARDNAME := WPJ342
836 endef
837
838 define Device/wpj344
839 $(Device/wpj-16m)
840 DEVICE_TITLE := Compex WPJ344 (16MB flash)
841 BOARDNAME := WPJ344
842 endef
843
844 define Device/wpj531
845 $(Device/wpj-16m)
846 DEVICE_TITLE := Compex WPJ531 (16MB flash)
847 BOARDNAME := WPJ531
848 endef
849
850 define Device/wpj558
851 $(Device/wpj-16m)
852 DEVICE_TITLE := Compex WPJ558 (16MB flash)
853 BOARDNAME := WPJ558
854 endef
855
856 define Device/wpj563
857 $(Device/wpj-16m)
858 DEVICE_TITLE := Compex WPJ563 (16MB flash)
859 BOARDNAME := WPJ563
860 endef
861 TARGET_DEVICES += wpj342 wpj344 wpj531 wpj558 wpj563
862
863 define Device/wrtnode2q
864 DEVICE_TITLE := WRTnode2Q
865 DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-storage
866 BOARDNAME := WRTNODE2Q
867 IMAGE_SIZE := 16064k
868 MTDPARTS := spi0.0:192k(u-boot)ro,64k(u-boot-env),64k(art)ro,16064k(firmware),16384k@0x0(fullflash)
869 endef
870 TARGET_DEVICES += wrtnode2q
871
872 define Device/zbt-we1526
873 DEVICE_TITLE := Zbtlink ZBT-WE1526
874 DEVICE_PACKAGES := kmod-usb-core kmod-usb2
875 BOARDNAME := ZBT-WE1526
876 IMAGE_SIZE := 16000k
877 KERNEL_SIZE := 1472k
878 ROOTFS_SIZE := 14528k
879 MTDPARTS := spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,14528k(rootfs),1472k(kernel),64k(art)ro,16000k@0x50000(firmware)
880 IMAGE/sysupgrade.bin := append-rootfs | pad-rootfs | pad-to $$$$(ROOTFS_SIZE) | append-kernel | check-size $$$$(IMAGE_SIZE)
881 endef
882 TARGET_DEVICES += zbt-we1526
883
884 define Device/fritz300e
885 DEVICE_TITLE := AVM FRITZ!WLAN Repeater 300E
886 DEVICE_PACKAGES := fritz-tffs rssileds -swconfig -uboot-envtools
887 BOARDNAME := FRITZ300E
888 SUPPORTED_DEVICES := fritz300e
889 IMAGE_SIZE := 15232k
890 KERNEL := kernel-bin | patch-cmdline | lzma | eva-image
891 IMAGE/sysupgrade.bin := append-kernel | pad-to 64k | \
892 append-squashfs-fakeroot-be | pad-to 256 | \
893 append-rootfs | pad-rootfs | append-metadata | check-size $$$$(IMAGE_SIZE)
894 endef
895 TARGET_DEVICES += fritz300e