Merge branch 'master' of RISCI_ATOM/libreCMC into master
[librecmc/librecmc.git] / target / linux / ar71xx / image / generic.mk
1 define Device/ap90q
2   DEVICE_TITLE := YunCore AP90Q
3   BOARDNAME = AP90Q
4   IMAGE_SIZE = 16000k
5   CONSOLE = ttyS0,115200
6   MTDPARTS = spi0.0:256k(u-boot)ro,64k(u-boot-env),16000k(firmware),64k(art)ro
7 endef
8 TARGET_DEVICES += ap90q
9
10 define Device/bsb
11   DEVICE_TITLE := Smart Electronics Black Swift board
12   DEVICE_PACKAGES := kmod-usb-core kmod-usb2
13   BOARDNAME = BSB
14   IMAGE_SIZE = 16000k
15   CONSOLE = ttyATH0,115200
16   MTDPARTS = spi0.0:128k(u-boot)ro,64k(u-boot-env)ro,16128k(firmware),64k(art)ro
17 endef
18 TARGET_DEVICES += bsb
19
20 define Device/carambola2
21   DEVICE_TITLE := Carambola2 board from 8Devices
22   DEVICE_PACKAGES := kmod-usb-core kmod-usb2
23   BOARDNAME = CARAMBOLA2
24   IMAGE_SIZE = 16000k
25   CONSOLE = ttyATH0,115200
26   MTDPARTS = spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,16000k(firmware),64k(art)ro
27 endef
28 TARGET_DEVICES += carambola2
29
30 define Device/cf-e316n-v2
31   DEVICE_TITLE := COMFAST CF-E316N v2
32   BOARDNAME = CF-E316N-V2
33   IMAGE_SIZE = 16192k
34   CONSOLE = ttyS0,115200
35   MTDPARTS = spi0.0:64k(u-boot)ro,64k(art)ro,16192k(firmware),64k(art-backup)ro
36 endef
37 TARGET_DEVICES += cf-e316n-v2
38
39 define Device/cf-e320n-v2
40   $(Device/cf-e316n-v2)
41   DEVICE_TITLE := COMFAST CF-E320N v2
42   DEVICE_PACKAGES := kmod-usb-core kmod-usb2
43   BOARDNAME = CF-E320N-V2
44 endef
45 TARGET_DEVICES += cf-e320n-v2
46
47 define Device/cf-e380ac-v2
48   $(Device/cf-e380ac-v1)
49   DEVICE_TITLE := COMFAST CF-E380AC v2
50   BOARDNAME = CF-E380AC-V2
51   IMAGE_SIZE = 16000k
52   MTDPARTS = spi0.0:256k(u-boot)ro,64k(art)ro,16000k(firmware),64k(art-backup)ro
53 endef
54 TARGET_DEVICES += cf-e380ac-v2
55
56 define Device/cf-e520n
57   DEVICE_TITLE := COMFAST CF-E520N
58   DEVICE_PACKAGES := kmod-usb-core kmod-usb2
59   BOARDNAME = CF-E520N
60   IMAGE_SIZE = 8000k
61   CONSOLE = ttyS0,115200
62   MTDPARTS = spi0.0:64k(u-boot)ro,64k(art)ro,8000k(firmware),64k(art-backup)ro
63 endef
64 TARGET_DEVICES += cf-e520n
65
66 define Device/cf-e530n
67   $(Device/cf-e520n)
68   DEVICE_TITLE := COMFAST CF-E530N
69   BOARDNAME = CF-E530N
70 endef
71 TARGET_DEVICES += cf-e530n
72
73 define Device/cpe830
74   $(Device/ap90q)
75   DEVICE_TITLE := YunCore CPE830
76   DEVICE_PACKAGES := rssileds
77   BOARDNAME = CPE830
78 endef
79 TARGET_DEVICES += cpe830
80
81 define Device/cpe870
82   DEVICE_TITLE := YunCore CPE870
83   DEVICE_PACKAGES := rssileds
84   BOARDNAME = CPE870
85   IMAGE_SIZE = 7936k
86   CONSOLE = ttyS0,115200
87   MTDPARTS = spi0.0:64k(u-boot)ro,64k(u-boot-env),7936k(firmware),64k(config)ro,64k(art)ro
88 endef
89 TARGET_DEVICES += cpe870
90
91 define Device/dragino2
92   BOARDNAME := DRAGINO2
93   CONSOLE := ttyATH0,115200
94   DEVICE_PACKAGES := kmod-usb-core kmod-usb-ohci kmod-usb2 kmod-usb-ledtrig-usbport
95   DEVICE_TITLE := Dragino 2 (MS14)
96   IMAGE_SIZE := 16000k
97   MTDPARTS := spi0.0:256k(u-boot)ro,16000k(firmware),64k(config)ro,64k(art)ro
98 endef
99 TARGET_DEVICES += dragino2
100
101 define Device/weio
102   DEVICE_TITLE := WeIO
103   DEVICE_PACKAGES := kmod-usb-core kmod-usb2
104   BOARDNAME = WEIO
105   IMAGE_SIZE = 16000k
106   CONSOLE = ttyATH0,115200
107   MTDPARTS = spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,16000k(firmware),64k(art)ro
108 endef
109 TARGET_DEVICES += weio
110
111 define Device/gl-ar150
112   DEVICE_TITLE := GL AR150
113   DEVICE_PACKAGES := kmod-usb-core kmod-usb2
114   BOARDNAME = GL-AR150
115   IMAGE_SIZE = 16000k
116   CONSOLE = ttyATH0,115200
117   MTDPARTS = spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,16000k(firmware),64k(art)ro
118 endef
119
120 define Device/gl-usb150
121 $(Device/gl-ar150)
122   DEVICE_TITLE := GL USB150
123   DEVICE_PACKAGES += kmod-usb-serial kmod-usb-serial-pl2303 kmod-usb-net
124 endef
125
126 define Device/tpe-r1100
127   $(Device/gl-ar150)
128   DEVICE_TITLE := TPE-R1100 Think Penguin Mini Router
129 endef
130
131 TARGET_DEVICES += gl-ar150 gl-usb150 tpe-r1100
132
133 define Device/gl-ar300
134   DEVICE_TITLE := GL AR300
135   DEVICE_PACKAGES := kmod-usb-core kmod-usb2
136   BOARDNAME = GL-AR300
137   IMAGE_SIZE = 16000k
138   CONSOLE = ttyS0,115200
139   MTDPARTS = spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,16000k(firmware),64k(art)ro
140 endef
141 TARGET_DEVICES += gl-ar300
142
143 define Device/gl-ar300m
144   DEVICE_TITLE := GL AR300M
145   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 uboot-envtools
146   BOARDNAME = GL-AR300M
147   IMAGE_SIZE = 16000k
148   CONSOLE = ttyS0,115200
149   MTDPARTS = spi0.0:256k(u-boot)ro,64k(u-boot-env),16000k(firmware),64k(art)ro
150 endef
151 TARGET_DEVICES += gl-ar300m
152
153 define Device/gl-domino
154   DEVICE_TITLE := GL Domino Pi
155   DEVICE_PACKAGES := kmod-usb-core kmod-usb2
156   BOARDNAME = DOMINO
157   IMAGE_SIZE = 16000k
158   CONSOLE = ttyATH0,115200
159   MTDPARTS = spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,16000k(firmware),64k(art)ro
160 endef
161 TARGET_DEVICES += gl-domino
162
163 define Device/gl-mifi
164   DEVICE_TITLE := GL MIFI
165   DEVICE_PACKAGES := kmod-usb-core kmod-usb2
166   BOARDNAME = GL-MIFI
167   IMAGE_SIZE = 16000k
168   CONSOLE = ttyATH0,115200
169   MTDPARTS = spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,16000k(firmware),64k(art)ro
170 endef
171 TARGET_DEVICES += gl-mifi
172
173 define Device/mr12
174   DEVICE_TITLE := Meraki MR12
175   DEVICE_PACKAGES := kmod-spi-gpio
176   BOARDNAME = MR12
177   IMAGE_SIZE = 15680k
178   MTDPARTS = spi0.0:256k(u-boot)ro,256k(u-boot-env)ro,13440k(rootfs),2240k(kernel),64k(mac),128k(art)ro,15680k@0x80000(firmware)
179   IMAGE/kernel.bin = append-kernel
180   IMAGE/rootfs.bin = append-rootfs | pad-rootfs
181   IMAGE/sysupgrade.bin = append-rootfs | pad-rootfs | pad-to 13440k | append-kernel | check-size $$$$(IMAGE_SIZE)
182   IMAGES := kernel.bin rootfs.bin sysupgrade.bin
183 endef
184 TARGET_DEVICES += mr12
185
186 define Device/mr16
187   DEVICE_TITLE := Meraki MR16
188   DEVICE_PACKAGES := kmod-spi-gpio
189   BOARDNAME = MR16
190   IMAGE_SIZE = 15680k
191   MTDPARTS = spi0.0:256k(u-boot)ro,256k(u-boot-env)ro,13440k(rootfs),2240k(kernel),64k(mac),128k(art)ro,15680k@0x80000(firmware)
192   IMAGE/kernel.bin = append-kernel
193   IMAGE/rootfs.bin = append-rootfs | pad-rootfs
194   IMAGE/sysupgrade.bin = append-rootfs | pad-rootfs | pad-to 13440k | append-kernel | check-size $$$$(IMAGE_SIZE)
195   IMAGES := kernel.bin rootfs.bin sysupgrade.bin
196 endef
197 TARGET_DEVICES += mr16
198
199 define Device/dr531
200   DEVICE_TITLE := Wallys DR531
201   DEVICE_PACKAGES := kmod-usb-core kmod-usb2
202   BOARDNAME = DR531
203   IMAGE_SIZE = 7808k
204   MTDPARTS = spi0.0:192k(u-boot)ro,64k(u-boot-env),64k(partition-table)ro,7808k(firmware),64k(art)ro
205 endef
206 TARGET_DEVICES += dr531
207
208 define Device/wndr3700
209   DEVICE_TITLE := NETGEAR WNDR3700
210   DEVICE_PACKAGES := kmod-usb-core kmod-usb-ohci kmod-usb2 kmod-usb-ledtrig-usbport kmod-leds-wndr3700-usb
211   BOARDNAME = WNDR3700
212   NETGEAR_KERNEL_MAGIC = 0x33373030
213   NETGEAR_BOARD_ID = WNDR3700
214   IMAGE_SIZE = 7680k
215   MTDPARTS = spi0.0:320k(u-boot)ro,128k(u-boot-env)ro,7680k(firmware),64k(art)ro
216   IMAGES := sysupgrade.bin factory.img factory-NA.img
217   KERNEL := kernel-bin | patch-cmdline | lzma -d20 | netgear-uImage lzma
218   IMAGE/default = append-kernel | pad-to $$$$(BLOCKSIZE) | netgear-squashfs | append-rootfs | pad-rootfs
219   IMAGE/sysupgrade.bin = $$(IMAGE/default) | check-size $$$$(IMAGE_SIZE)
220   IMAGE/factory.img = $$(IMAGE/default) | netgear-dni | check-size $$$$(IMAGE_SIZE)
221   IMAGE/factory-NA.img = $$(IMAGE/default) | netgear-dni NA | check-size $$$$(IMAGE_SIZE)
222 endef
223
224 define Device/wndr3700v2
225 $(Device/wndr3700)
226   DEVICE_TITLE := NETGEAR WNDR3700 v2
227   NETGEAR_BOARD_ID = WNDR3700v2
228   NETGEAR_KERNEL_MAGIC = 0x33373031
229   NETGEAR_HW_ID = 29763654+16+64
230   IMAGE_SIZE = 15872k
231   MTDPARTS = spi0.0:320k(u-boot)ro,128k(u-boot-env)ro,15872k(firmware),64k(art)ro
232   IMAGES := sysupgrade.bin factory.img
233 endef
234
235 define Device/wndr3800
236 $(Device/wndr3700v2)
237   DEVICE_TITLE := NETGEAR WNDR3800
238   NETGEAR_BOARD_ID = WNDR3800
239   NETGEAR_HW_ID = 29763654+16+128
240 endef
241
242 define Device/wndr3800ch
243 $(Device/wndr3800)
244   DEVICE_TITLE := NETGEAR WNDR3800 (Ch)
245   NETGEAR_BOARD_ID = WNDR3800CH
246 endef
247
248 define Device/wndrmac
249 $(Device/wndr3700v2)
250   DEVICE_TITLE := NETGEAR WNDRMAC
251   NETGEAR_BOARD_ID = WNDRMAC
252 endef
253
254 define Device/wndrmacv2
255 $(Device/wndr3800)
256   DEVICE_TITLE := NETGEAR WNDRMAC v2
257   NETGEAR_BOARD_ID = WNDRMACv2
258 endef
259
260 TARGET_DEVICES += wndr3700 wndr3700v2 wndr3800 wndr3800ch wndrmac wndrmacv2
261
262 define Device/cap324
263   DEVICE_TITLE := PowerCloud CAP324 Cloud AP
264   DEVICE_PACKAGES := uboot-envtools
265   BOARDNAME := CAP324
266   DEVICE_PROFILE := CAP324
267   IMAGE_SIZE = 15296k
268   MTDPARTS = spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,15296k(firmware),640k(certs),64k(nvram),64k(art)ro
269 endef
270
271 TARGET_DEVICES += cap324
272
273 define Device/cap324-nocloud
274   DEVICE_TITLE := PowerCloud CAP324 Cloud AP (No-Cloud)
275   DEVICE_PACKAGES := uboot-envtools
276   BOARDNAME := CAP324
277   DEVICE_PROFILE := CAP324
278   IMAGE_SIZE = 16000k
279   MTDPARTS = spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,16000k(firmware),64k(art)ro
280 endef
281
282 TARGET_DEVICES += cap324-nocloud
283
284 define Device/cr3000
285   DEVICE_TITLE := PowerCloud CR3000 Cloud Router
286   DEVICE_PACKAGES := uboot-envtools
287   BOARDNAME := CR3000
288   DEVICE_PROFILE := CR3000
289   IMAGE_SIZE = 7104k
290   MTDPARTS = spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,7104k(firmware),640k(certs),64k(nvram),64k(art)ro
291 endef
292
293 TARGET_DEVICES += cr3000
294
295 define Device/cr3000-nocloud
296   DEVICE_TITLE := PowerCloud CR3000 (No-Cloud)
297   DEVICE_PACKAGES := uboot-envtools
298   BOARDNAME := CR3000
299   DEVICE_PROFILE := CR3000
300   IMAGE_SIZE = 7808k
301   MTDPARTS = spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,7808k(firmware),64k(art)ro
302 endef
303
304 TARGET_DEVICES += cr3000-nocloud
305
306 define Device/cr5000
307   DEVICE_TITLE := PowerCloud CR5000 Cloud Router
308   DEVICE_PACKAGES := uboot-envtools kmod-usb2 kmod-usb-ohci kmod-usb-ledtrig-usbport kmod-usb-core
309   BOARDNAME := CR5000
310   DEVICE_PROFILE := CR5000
311   IMAGE_SIZE = 7104k
312   MTDPARTS = spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,7104k(firmware),640k(certs),64k(nvram),64k(art)ro
313 endef
314
315 TARGET_DEVICES += cr5000
316
317 define Device/cr5000-nocloud
318   DEVICE_TITLE := PowerCloud CR5000 (No-Cloud)
319   DEVICE_PACKAGES := uboot-envtools kmod-usb2 kmod-usb-ohci kmod-usb-ledtrig-usbport kmod-usb-core
320   BOARDNAME := CR5000
321   DEVICE_PROFILE := CR5000
322   IMAGE_SIZE = 7808k
323   MTDPARTS = spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,7808k(firmware),64k(art)ro
324 endef
325
326 TARGET_DEVICES += cr5000-nocloud
327
328 define Device/antminer-s1
329   $(Device/tplink-8mlzma)
330   DEVICE_TITLE := Antminer-S1
331   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-crypto-manager kmod-i2c-gpio-custom kmod-usb-hid
332   BOARDNAME := ANTMINER-S1
333   DEVICE_PROFILE := ANTMINERS1
334   TPLINK_HWID := 0x04440101
335   CONSOLE := ttyATH0,115200
336 endef
337
338 define Device/antminer-s3
339   $(Device/tplink-8mlzma)
340   DEVICE_TITLE := Antminer-S3
341   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-crypto-manager kmod-i2c-gpio-custom kmod-usb-hid
342   BOARDNAME := ANTMINER-S3
343   DEVICE_PROFILE := ANTMINERS3
344   TPLINK_HWID := 0x04440301
345   CONSOLE := ttyATH0,115200
346 endef
347
348 define Device/antrouter-r1
349   $(Device/tplink-8mlzma)
350   DEVICE_TITLE := Antrouter-R1
351   DEVICE_PACKAGES := kmod-usb-core kmod-usb2
352   BOARDNAME := ANTROUTER-R1
353   DEVICE_PROFILE := ANTROUTERR1
354   TPLINK_HWID := 0x44440101
355   CONSOLE := ttyATH0,115200
356 endef
357
358 define Device/el-m150
359   $(Device/tplink-8mlzma)
360   DEVICE_TITLE := EasyLink EL-M150
361   DEVICE_PACKAGES := kmod-usb-core kmod-usb2
362   BOARDNAME := EL-M150
363   DEVICE_PROFILE := ELM150
364   TPLINK_HWID := 0x01500101
365   CONSOLE := ttyATH0,115200
366 endef
367
368 define Device/el-mini
369   $(Device/tplink-8mlzma)
370   DEVICE_TITLE := EasyLink EL-MINI
371   DEVICE_PACKAGES := kmod-usb-core kmod-usb2
372   BOARDNAME := EL-MINI
373   DEVICE_PROFILE := ELMINI
374   TPLINK_HWID := 0x01530001
375   CONSOLE := ttyATH0,115200
376 endef
377 TARGET_DEVICES += antminer-s1 antminer-s3 antrouter-r1 el-m150 el-mini
378
379 define Device/gl-inet-6408A-v1
380   $(Device/tplink-8mlzma)
381   DEVICE_TITLE := GL.iNet 6408
382   DEVICE_PACKAGES := kmod-usb-core kmod-usb2
383   BOARDNAME := GL-INET
384   DEVICE_PROFILE := GLINET
385   TPLINK_HWID := 0x08000001
386   CONSOLE := ttyATH0,115200
387 endef
388
389 define Device/gl-inet-6416A-v1
390   $(Device/tplink-16mlzma)
391   DEVICE_TITLE := GL.iNet 6416
392   DEVICE_PACKAGES := kmod-usb-core kmod-usb2
393   BOARDNAME := GL-INET
394   DEVICE_PROFILE := GLINET
395   TPLINK_HWID := 0x08000001
396   CONSOLE := ttyATH0,115200
397 endef
398 TARGET_DEVICES += gl-inet-6408A-v1 gl-inet-6416A-v1
399
400 define Device/jwap230
401   DEVICE_TITLE := jjPlus JWAP230
402   DEVICE_PACKAGES := kmod-usb-core kmod-usb2
403   BOARDNAME = JWAP230
404   IMAGE_SIZE = 16000k
405   MTDPARTS = spi0.0:256k(u-boot)ro,64k(u-boot-env),16000k(firmware),64k(art)ro
406 endef
407 TARGET_DEVICES += jwap230
408
409 define Device/rnx-n360rt
410   $(Device/tplink-4m)
411   DEVICE_TITLE := Rosewill RNX-N360RT
412   BOARDNAME := TL-WR941ND
413   DEVICE_PROFILE := RNXN360RT
414   TPLINK_HWID := 0x09410002
415   TPLINK_HWREV := 0x00420001
416 endef
417 TARGET_DEVICES += rnx-n360rt
418
419 define Device/minibox-v1
420   $(Device/tplink-16mlzma)
421   DEVICE_TITLE := Gainstrong MiniBox V1.0
422   DEVICE_PACKAGES := kmod-usb-core kmod-usb2  kmod-usb-ledtrig-usbport
423   BOARDNAME := MINIBOX-V1
424   DEVICE_PROFILE := MINIBOXV1
425   TPLINK_HWID := 0x3C000201
426   CONSOLE := ttyATH0,115200
427 endef
428 TARGET_DEVICES += minibox-v1
429
430 define Device/omy-g1
431   $(Device/tplink-16mlzma)
432   DEVICE_TITLE := OMYlink OMY-G1
433   DEVICE_PACKAGES := kmod-usb-core kmod-usb2
434   BOARDNAME := OMY-G1
435   DEVICE_PROFILE := OMYG1
436   TPLINK_HWID := 0x06660101
437 endef
438
439 define Device/omy-x1
440   $(Device/tplink-8mlzma)
441   DEVICE_TITLE := OMYlink OMY-X1
442   BOARDNAME := OMY-X1
443   DEVICE_PROFILE := OMYX1
444   TPLINK_HWID := 0x06660201
445 endef
446 TARGET_DEVICES += omy-g1 omy-x1
447
448 define Device/onion-omega
449   $(Device/tplink-16mlzma)
450   DEVICE_TITLE := Onion Omega
451   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
452   BOARDNAME := ONION-OMEGA
453   DEVICE_PROFILE := OMEGA
454   TPLINK_HWID := 0x04700001
455   CONSOLE := ttyATH0,115200
456 endef
457 TARGET_DEVICES += onion-omega
458
459 define Device/smart-300
460   $(Device/tplink-8mlzma)
461   DEVICE_TITLE := NC-LINK SMART-300
462   BOARDNAME := SMART-300
463   DEVICE_PROFILE := SMART-300
464   TPLINK_HWID := 0x93410001
465 endef
466 TARGET_DEVICES += smart-300
467
468 define Device/som9331
469   $(Device/tplink-8mlzma)
470   DEVICE_TITLE := OpenEmbed SOM9331
471   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
472   BOARDNAME := SOM9331
473   DEVICE_PROFILE := SOM9331
474   TPLINK_HWID := 0x04800054
475   CONSOLE := ttyATH0,115200
476 endef
477 TARGET_DEVICES += som9331
478
479 define Device/tellstick-znet-lite
480   $(Device/tplink-16mlzma)
481   DEVICE_TITLE := TellStick ZNet Lite
482   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-acm kmod-usb-serial kmod-usb-serial-pl2303
483   BOARDNAME := TELLSTICK-ZNET-LITE
484   DEVICE_PROFILE := TELLSTICKZNETLITE
485   TPLINK_HWID := 0x00726001
486   CONSOLE := ttyATH0,115200
487 endef
488 TARGET_DEVICES += tellstick-znet-lite
489
490 define Device/oolite
491   $(Device/tplink-16mlzma)
492   DEVICE_TITLE := Gainstrong OOLITE
493   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
494   BOARDNAME := GS-OOLITE
495   DEVICE_PROFILE := OOLITE
496   TPLINK_HWID := 0x3C000101
497   CONSOLE := ttyATH0,115200
498 endef
499 TARGET_DEVICES += oolite
500
501
502 define Device/NBG6616
503   DEVICE_TITLE := ZyXEL NBG6616
504   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport kmod-usb-storage kmod-rtc-pcf8563
505   BOARDNAME = NBG6616
506   KERNEL_SIZE = 2048k
507   IMAGE_SIZE = 15323k
508   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)
509   CMDLINE += mem=128M
510   IMAGES := sysupgrade.bin
511   KERNEL := kernel-bin | patch-cmdline | lzma | uImage lzma | jffs2 boot/vmlinux.lzma.uImage
512   IMAGE/sysupgrade.bin = append-kernel | pad-to $$$$(KERNEL_SIZE) | append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE)
513   # We cannot currently build a factory image. It is the sysupgrade image
514   # prefixed with a header (which is actually written into the MTD device).
515   # The header is 2kiB and is filled with 0xff. The format seems to be:
516   #   2 bytes:  0x0000
517   #   2 bytes:  checksum of the data partition (big endian)
518   #   4 bytes:  length of the contained image file (big endian)
519   #  32 bytes:  Firmware Version string (NUL terminated, 0xff padded)
520   #   2 bytes:  0x0000
521   #   2 bytes:  checksum over the header partition (big endian)
522   #  32 bytes:  Model (e.g. "NBG6616", NUL termiated, 0xff padded)
523   #      rest: 0xff padding
524   #
525   # The checksums are calculated by adding up all bytes and if a 16bit
526   # overflow occurs, one is added and the sum is masked to 16 bit:
527   #   csum = csum + databyte; if (csum > 0xffff) { csum += 1; csum &= 0xffff };
528   # Should the file have an odd number of bytes then the byte len-0x800 is
529   # used additionally.
530   # The checksum for the header is calcualted over the first 2048 bytes with
531   # the firmware checksum as the placeholder during calculation.
532   #
533   # The header is padded with 0xff to the erase block size of the device.
534 endef
535
536 TARGET_DEVICES += NBG6616
537
538 define Device/c-55
539   DEVICE_TITLE := AirTight Networks C-55
540   DEVICE_PACKAGES := kmod-ath9k
541   BOARDNAME = C-55
542   KERNEL_SIZE = 2048k
543   IMAGE_SIZE = 15872k
544   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)
545   IMAGE/sysupgrade.bin = append-kernel | pad-to $$$$(KERNEL_SIZE) | append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE)
546 endef
547
548 TARGET_DEVICES += c-55
549
550
551 define Build/uImageHiWiFi
552         # Field ih_name needs to start with "tw150v1"
553         mkimage -A $(LINUX_KARCH) \
554                 -O linux -T kernel \
555                 -C $(1) -a $(KERNEL_LOADADDR) -e $(if $(KERNEL_ENTRY),$(KERNEL_ENTRY),$(KERNEL_LOADADDR)) \
556                 -n 'tw150v1 $(call toupper,$(LINUX_KARCH)) libreCMC Linux-$(LINUX_VERSION)' -d $@ $@.new
557         @mv $@.new $@
558 endef
559
560 define Device/hiwifi-hc6361
561   DEVICE_TITLE := HiWiFi HC6361
562   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-storage \
563         kmod-fs-ext4 kmod-nls-iso8859-1 e2fsprogs
564   BOARDNAME := HiWiFi-HC6361
565   DEVICE_PROFILE := HIWIFI_HC6361
566   IMAGE_SIZE := 16128k
567   KERNEL := kernel-bin | patch-cmdline | lzma | uImageHiWiFi lzma
568   CONSOLE := ttyATH0,115200
569   MTDPARTS := spi0.0:64k(u-boot)ro,64k(bdinfo)ro,16128k(firmware),64k(backup)ro,64k(art)ro
570 endef
571 TARGET_DEVICES += hiwifi-hc6361
572
573
574 define Build/seama
575         $(STAGING_DIR_HOST)/bin/seama -i $@ $(if $(1),$(1),-m "dev=/dev/mtdblock/1" -m "type=firmware")
576         mv $@.seama $@
577 endef
578
579 define Build/seama-seal
580         $(call Build/seama,-s $@.seama $(1))
581 endef
582
583 define Device/seama
584   CONSOLE := ttyS0,115200
585   LOADER_TYPE := bin
586   BLOCKSIZE := 64k
587   KERNEL := kernel-bin | patch-cmdline | relocate-kernel | lzma
588   KERNEL_INITRAMFS := kernel-bin | patch-cmdline | lzma | seama
589   KERNEL_INITRAMFS_SUFFIX = $$(KERNEL_SUFFIX).seama
590   IMAGES := sysupgrade.bin factory.bin
591
592   # 64 bytes offset:
593   # - 28 bytes seama_header
594   # - 36 bytes of META data (4-bytes aligned)
595   IMAGE/default := append-kernel | pad-offset $$$$(BLOCKSIZE) 64 | append-rootfs
596   IMAGE/sysupgrade.bin := \
597         $$(IMAGE/default) | seama | pad-rootfs | \
598         check-size $$$$(IMAGE_SIZE)
599   IMAGE/factory.bin := \
600         $$(IMAGE/default) | seama | pad-rootfs | \
601         seama-seal -m "signature=$$$$(SEAMA_SIGNATURE)" | \
602         check-size $$$$(IMAGE_SIZE)
603   SEAMA_SIGNATURE :=
604   DEVICE_VARS += SEAMA_SIGNATURE
605 endef
606
607 define Device/mynet-n600
608 $(Device/seama)
609   DEVICE_TITLE := Western Digital My Net N600
610   DEVICE_PACKAGES := kmod-usb-core kmod-usb2
611   BOARDNAME = MYNET-N600
612   IMAGE_SIZE = 15808k
613   MTDPARTS = spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,64k(devdata)ro,64k(devconf)ro,15872k(firmware),64k(radiocfg)ro
614   SEAMA_SIGNATURE := wrgnd16_wd_db600
615 endef
616
617 define Device/mynet-n750
618 $(Device/seama)
619   DEVICE_TITLE := Western Digital My Net N750
620   DEVICE_PACKAGES := kmod-usb-core kmod-usb2
621   BOARDNAME = MYNET-N750
622   IMAGE_SIZE = 15808k
623   MTDPARTS = spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,64k(devdata)ro,64k(devconf)ro,15872k(firmware),64k(radiocfg)ro
624   SEAMA_SIGNATURE := wrgnd13_wd_av
625 endef
626
627 define Device/qihoo-c301
628 $(Device/seama)
629   DEVICE_TITLE := Qihoo C301
630   DEVICE_PACKAGES :=  kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
631   BOARDNAME = QIHOO-C301
632   IMAGE_SIZE = 15744k
633   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)
634   SEAMA_SIGNATURE := wrgac26_qihoo360_360rg
635 endef
636
637 TARGET_DEVICES += dir-869-a1 mynet-n600 mynet-n750 qihoo-c301
638
639 define Build/mkwrggimg
640         $(STAGING_DIR_HOST)/bin/mkwrggimg -b \
641                 -i $@ -o $@.imghdr -d /dev/mtdblock/1 \
642                 -m $(BOARDNAME) -s $(DAP_SIGNATURE) \
643                 -v libreCMC -B $(REVISION)
644         mv $@.imghdr $@
645 endef
646
647 define Build/wrgg-pad-rootfs
648         $(STAGING_DIR_HOST)/bin/padjffs2 $(IMAGE_ROOTFS) -c 64 >>$@
649 endef
650
651 define Build/mkbuffaloimg
652         $(STAGING_DIR_HOST)/bin/mkbuffaloimg -B $(BOARDNAME) \
653                 -R $$(($(subst k, * 1024,$(ROOTFS_SIZE)))) \
654                 -K $$(($(subst k, * 1024,$(KERNEL_SIZE)))) \
655                 -i $@ -o $@.new
656         mv $@.new $@
657 endef
658
659 define Device/bhr-4grv2
660   DEVICE_TITLE := Buffalo BHR-4GRV2
661   BOARDNAME := BHR-4GRV2
662   ROOTFS_SIZE := 14528k
663   KERNEL_SIZE := 1472k
664   IMAGE_SIZE := 16000k
665   MTDPARTS := spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,14528k(rootfs),1472k(kernel),64k(art)ro,16000k@0x50000(firmware)
666   IMAGES := sysupgrade.bin factory.bin
667   IMAGE/sysupgrade.bin = append-rootfs | pad-rootfs | pad-to $$$$(ROOTFS_SIZE) | append-kernel | check-size $$$$(IMAGE_SIZE)
668   IMAGE/factory.bin = append-kernel | pad-to $$$$(KERNEL_SIZE) | append-rootfs | pad-rootfs | mkbuffaloimg
669 endef
670 TARGET_DEVICES += bhr-4grv2